我很难对JSON数据进行反序列化,JSON数据由一个具有相同结构的类似对象组成,但是每个对象都有一个我无法预测的不同名称。
JSON的总体结构如下(来源在这里):

名为1be2f7和193ff5的对象具有相同的结构。
如果我对这两个对象的名称进行硬编码,那么反序列化是没有问题的,但是如果没有硬编码,如何做到这一点呢?
以下是我尝试过的:
public List<Rig> rigs { get; set; }但这就产生了这样的错误:
无法将当前JSON对象(例如,{“名称”:“值”})反序列化为'System.Collections.Generic.List`1Eth.Rig‘类型,因为该类型需要一个JSON数组(例如,1、2、3)才能正确反序列化。要修复此错误,要么将JSON更改为JSON数组(例如,1,2,3),要么更改反序列化类型,使之成为可以从JSON对象反序列化的普通.NET类型(例如,不像整数这样的原始类型,而不是数组或列表之类的集合类型)。还可以将JsonObjectAttribute添加到类型中,以强制它从JSON对象反序列化。路径‘1是2f7’,第1行,位置18。
有一个类似的问题,但是它被接受的答案不适用于我,因为Visual也只是硬编码对象的名称。
发布于 2016-08-28 11:59:25
发现了-结果很简单。
改变这一点:
public List<Rig> rigs { get; set; }对此:
public Dictionary<Rig> rigs { get; set; }然后使用它循环通过:
foreach(KeyValuePair<string, Rig> entry in rigs)
{
// do something with entry.Value or entry.Key
}https://stackoverflow.com/questions/39190949
复制相似问题