【发布时间】:2016-08-28 11:49:18
【问题描述】:
我正在努力反序列化 JSON 数据,该数据由一组内部具有相同结构的相似对象组成,但每个对象都有不同的名称,我无法预测。
JSON的整体结构是这样的(source here):
名为 1be2f7 和 193ff5 的对象具有相同的结构。
如果我对这两个对象的名称进行硬编码,反序列化没有问题,但是如果没有硬编码,我该怎么做呢?
这是我尝试过的:
public List<Rig> rigs { get; set; }
但这给出了这个错误:
无法反序列化当前 JSON 对象(例如 {"name":"value"}) 进入类型“System.Collections.Generic.List`1[Eth.Rig]”,因为 type 需要一个 JSON 数组(例如 [1,2,3])才能正确反序列化。到 修复此错误或者将 JSON 更改为 JSON 数组(例如 [1,2,3]) 或更改反序列化类型,使其成为普通的 .NET 类型(例如 不是像整数这样的原始类型,不是像数组这样的集合类型 或列表)可以从 JSON 对象反序列化。 JsonObjectAttribute 也可以添加到类型中以强制它 从 JSON 对象反序列化。路径“rigs.1be2f7”,第 1 行,位置 18.
有一个similar question here,但它接受的答案对我不起作用,因为 Visual Studio 也只是硬编码对象的名称。
【问题讨论】:
标签: c# json visual-studio-2015 json.net deserialization