Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 反序列化对字典的Json响应<;字符串,对象>;抛出错误:反序列化对象时意外结束_C#_Json_Json Deserialization - Fatal编程技术网

C# 反序列化对字典的Json响应<;字符串,对象>;抛出错误:反序列化对象时意外结束

C# 反序列化对字典的Json响应<;字符串,对象>;抛出错误:反序列化对象时意外结束,c#,json,json-deserialization,C#,Json,Json Deserialization,嗨,我正在尝试反序列化json响应,如下所示 { [ { "WebCash" : { "Id" : 1021, "RedemptionCode" : "sdfkjk", "PlayerCardId" : "3802", "Amount" : 8000, "Status" :

嗨,我正在尝试反序列化json响应,如下所示

{     
    [ 
        { 
            "WebCash" : { 
                "Id" : 1021,
                "RedemptionCode" : "sdfkjk",
                "PlayerCardId" : "3802",
                "Amount" : 8000,
                "Status" : 1,
                "PurchaseTimeStamp" : 1445020270,
                "RedeemTimeStamp" : 1445021971,
                "RetailerId" : "1781",
                "TerminalId" : "9",
            }, { 
                "Id" : 1160,
                "RedemptionCode" : "9123LKBJFDAXEK8194",
                "PlayerCardId" : "3802",
                "Amount" : 10000,
                "Status" : 3,
                "PurchaseTimeStamp" : 1445020270,
                "RetailerId" : "1781",
                "TerminalId" : "9",
            }
       } 
    ]
}
当我们没有不同的块时,它可以正常工作,但当我们的响应类型为{[{,},{,}]}时,它会抛出错误

我正在使用以下代码

String Expected_Response = Response;
Dictionary<String, Object> ActualResponse_Dic = null; 
ActualResponse_Dic = JsonConvert.DeserializeObject<Dictionary<String, Object>>(ResponseValue);  //ResponseValue holds the entire Json response string
字符串预期\u响应=响应;
字典实际响应=null;
ActualResponse_Dic=JsonConvert.DeserializeObject(ResponseValue)//ResponseValue保存整个Json响应字符串
它在最后一行抛出错误
反序列化对象路径时出现意外结束…

我同意Amy提供的评论。请尝试以下操作:

  • 拆下最外面的大括号{}
  • 删除“TerminalId”之后的逗号:“9”
  • 在“WebCash”对象周围放置括号[]:
可能如下所示:

[{
"WebCash": [{
    "Id": 1021,
    "RedemptionCode": "sdfkjk",
    "PlayerCardId": "3802",
    "Amount": 8000,
    "Status": 1,
    "PurchaseTimeStamp": 1445020270,
    "RedeemTimeStamp": 1445021971,
    "RetailerId": "1781",
    "TerminalId": "9"
}, {
    "Id": 1160,
    "RedemptionCode": "9123LKBJFDAXEK8194",
    "PlayerCardId": "3802",
    "Amount": 10000,
    "Status": 3,
    "PurchaseTimeStamp": 1445020270,
    "RetailerId": "1781",
    "TerminalId": "9"
}]
}]

您的JSON无效。此外,字典可能会被序列化为如下内容:

    { 
        "WebCash" : { 
            "Id" : 1021,
            "RedemptionCode" : "sdfkjk",
            "PlayerCardId" : "3802",
            "Amount" : 8000,
            "Status" : 1,
            "PurchaseTimeStamp" : 1445020270,
            "RedeemTimeStamp" : 1445021971,
            "RetailerId" : "1781",
            "TerminalId" : "9"
        }, 
        "WebCash2" : { 
            "Id" : 1160,
            "RedemptionCode" : "9123LKBJFDAXEK8194",
            "PlayerCardId" : "3802",
            "Amount" : 10000,
            "Status" : 3,
            "PurchaseTimeStamp" : 1445020270,
            "RetailerId" : "1781",
            "TerminalId" : "9"
        }
   } 

json字符串中的第二个键在哪里?它失败了,因为它不是有效的json。通过验证器运行它。非常感谢。我对JSON结构知之甚少。这解决了问题。