【发布时间】:2019-06-11 01:56:54
【问题描述】:
我认为我得到的是来自 Rest API 的 json 响应,但所有数组字段都不包含 []。当我解析时,它给了我错误。
我尝试过 JObject.Parse 或 JsonConvert.DeserializeObject,它们都给我错误。当我添加 [] 时,它就像一个魅力。
var content= "{'main': {'item': 'item1', 'value': 'value1'}, {'item': 'item2', 'value': 'value2'} }";
当我尝试时:
jRoot = JObject.Parse(content);
我收到了
{"无效的属性标识符字符:{.Path 'main', line 1, position 47."}
当我尝试时:
var = JsonConvert.DeserializeObject<mainOBJ>(content);
我收到了
{"解析值时遇到意外字符:}。路径'main',第1行,位置7。"}
【问题讨论】:
-
您正在尝试使用 JSON 解析器解析无效的 JSON(但相似)。除了 hacky 解决方案,最好的建议是联系 API 维护人员并让他们修复它。
-
jsonlint.com 对那个“JSON”有什么看法?
-
那不是 JSON。没有 JSON 序列化程序会创建此字符串。也没有解析器能够解析它。看起来 REST API 作者试图手动创建 JSON 字符串而不是使用 JSON 序列化程序
-
你也不能假设
main是一个数组。如果忘记的部分是第二个字典之前的main2:标签怎么办?可能main是一个项目数组,或者main是根字典中的两个属性之一。 -
请将我的答案设置为这个问题的答案