我在尝试反序列化从外部源接收的JSON时遇到问题。我不确定,但我认为可能是JSON本身错了,否则我做错了。有人可以对此有所了解吗?
这是我收到的JSON:
{"results": {"result": 32}},{"statistics": {"positive": 47.3,"negative": 49.6,"breakeven": 3.1}}
这些是我的课程:
public class dataClass
{
public resultsClass results { get; set; }
public statisticsClass statistics { get; set; }
}
public class resultsClass
{
public int result { get; set; }
}
public class statisticsClass
{
public Double? positive { get; set; }
public Double? negative { get; set; }
public Double? breakeven { get; set; }
}
这就是我反序列化的方式:
dataClass output = JsonConvert.DeserializeObject<dataClass>(response);
当我尝试反序列化时,我收到错误:
完成阅读JSON内容后遇到的其他文字
我已将其归结为结果与统计数据之间的逗号。我认为结果的最后括号和统计数据的开头不应该存在。
还是我反序列化错误?
答案 0 :(得分:4)
您的JSON格式不正确。
根据{{3}}验证:
Error: Parse error on line 5:
... "result": 32 }}, { "statistics": {
--------------------^
Expecting 'EOF', got ','
这有效:
{
"results": {
"result": 32
},
"statistics": {
"positive": 47.3,
"negative": 49.6,
"breakeven": 3.1
}
}
答案 1 :(得分:1)
如果你将json解析为文本编辑器,你可以看到在该响应中你有双根元素。结果,统计数据是分开的。
你必须选择:
JsonConvert.DeserializeObject<dataClass>(response);
{
"results": {
"result": 32
},
"statistics": {
"positive": 47.3,
"negative": 49.6,
"breakeven": 3.1
}
}
并且应该使用您的代码。此致