已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
2天前关闭。
Improve this question
我有一些“json”被一个外部API(我无法控制)返回,它似乎返回了无效的json(我还没有弄清楚如何将其解析为c#对象)。如果我使用一个var,只是反序列化,没有错误,但我不知道如何将数据取出...
下面是json的一个片段:
{"data":"0":"BCDF0124","1":"BCDF0128","2":"BCDF0134","3":"BCDF0137","4":"BCDF02"},"statusCode":"OK","error":null}
当我执行类似var objData = JsonConvert.DeserializeObject(strTheJson)
的操作时,没有运行时错误,但是我无法访问json的“数据”部分中的list/array/whatever-it-is。
2条答案
按热度按时间rryofs0p1#
您的JSON无效。需要在数据属性后添加“{”。要修复此问题
如果只需要数据部分
作为字典
作为列表
输出
wlzqhblo2#
如果你没有得到任何错误,那么你发布的代码片段是不正确的,因为这肯定会导致异常。
JsonConvert是Newtonsoft.Json的一部分。
JsonConvert.Deserialize
对于反序列化为您在C#中定义的对象类型非常有用,但在不使用泛型版本时效果不佳。可能很难准确预测它将返回什么。但在本例中,它应该是一个类似字典的对象。选项A定义一个与JSON中的数据匹配的类,并用途:
JsonConvert.Deserialize<MySpecialClass>(json)
选项B使用JToken类,如JObject等:
然后,您可以将该对象转换为Dictionary、List或Array等。