C# JSON字符串未反序列化
由于重复的属性名C# JSON字符串未反序列化,c#,json,deserialization,prtg,C#,Json,Deserialization,Prtg,由于重复的属性名value和value\u raw,我在反序列化此JSON数据时遇到问题 我尝试使用基于列表的对象来反序列化值,但这只会导致最后一个值存储在对象中。除此之外,对象将正确解析 JSON字符串: { "prtg-version":"9.2.0.2236", "treesize":576, "values": [{ "datetime":"29/09/2012 09:45:00 - 09:50:00",
value
和value\u raw
,我在反序列化此JSON数据时遇到问题
我尝试使用基于列表的对象来反序列化值,但这只会导致最后一个值存储在对象中。除此之外,对象将正确解析
JSON字符串:
{
"prtg-version":"9.2.0.2236",
"treesize":576,
"values":
[{
"datetime":"29/09/2012 09:45:00 - 09:50:00",
"datetime_raw":41181.3680555556,
"value":"49 %",
"value_raw":48.5000,
"value":"0 %",
"value_raw":0.0000,
"coverage":"100 %",
"coverage_raw":"0000010000"
}]
}
请注意-JSON字符串是我从PRTG得到的,因此不幸的是,我必须以这种格式使用它:(您不能反序列化该字符串,因为您提供的字符串不是有效的JSON。通过RFC,一个对象中的所有属性名称都应该是唯一的。解决这一问题的唯一合理方法是重写该字符串的代码部分。能否先序列化
"datetime":"29/09/2012 09:45:00 - 09:50:00",
"datetime_raw":41181.3680555556,
"value":"49 %",
"value_raw":48.5000,
"value":"0 %",
"value_raw":0.0000,
"coverage":"100 %",
"coverage_raw":"0000010000"
输入一个字符串列表,然后做进一步的处理后
"datetime" :"29/09/2012 09:45:00 - 09:50:00",
"datetime_raw":41181.3680555556,
"value" :["49 %","0 %"]
"value_raw" :[48.5000,0.0000]
"coverage" :"100 %",
"coverage_raw":"0000010000"
如上所示更改
值
和值_原始
可能有助于您定义基于列表的对象?不确定这里的情况是“值”和“值_原始”不能被视为重复的属性名,除非我们缺少信息。你能提供一段你正在做/试图做什么的示例代码吗?因为这是有效的json,它应该反序列化很好。实际上,RFC允许这样做,但建议不要这样做。“对象中的名称应该是唯一的。”也就是说,我认为我从未见过a)这在实践中使用,b)一个JSON库处理它,而不是返回一个值(随机选择)。这可能是OP的问题。