首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Newtonsoft反序列化器反序列化对象数组

使用Newtonsoft反序列化器反序列化对象数组
EN

Stack Overflow用户
提问于 2016-08-28 11:49:18
回答 1查看 132关注 0票数 1

我很难对JSON数据进行反序列化,JSON数据由一个具有相同结构的类似对象组成,但是每个对象都有一个我无法预测的不同名称。

JSON的总体结构如下(来源在这里):

名为1be2f7和193ff5的对象具有相同的结构。

如果我对这两个对象的名称进行硬编码,那么反序列化是没有问题的,但是如果没有硬编码,如何做到这一点呢?

以下是我尝试过的:

代码语言:javascript
复制
    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也只是硬编码对象的名称。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-28 11:59:25

发现了-结果很简单。

改变这一点:

代码语言:javascript
复制
public List<Rig> rigs { get; set; }

对此:

代码语言:javascript
复制
public Dictionary<Rig> rigs { get; set; }

然后使用它循环通过:

代码语言:javascript
复制
foreach(KeyValuePair<string, Rig> entry in rigs)
{
    // do something with entry.Value or entry.Key
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39190949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档