首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JsonConvert.DeserializeObject阵列

JsonConvert.DeserializeObject阵列
EN

Stack Overflow用户
提问于 2016-06-08 04:07:05
回答 1查看 656关注 0票数 0

这与其他帖子相似,但我的变化是json对象以数组开始,我无法让它反序列化。

代码语言:javascript
复制
class Program
{
    static void Main(string[] args)
    {
        var json = @"[[{""f1"":1, ""f2"":2}]]";
        var obj = JsonConvert.DeserializeObject<RootObject[]>(json);
    }
}

public class RootObject
{
    public List<InnerObject> InnerObjects { get; set; } 
}

public class InnerObject
{
    public int f1 { get; set; }
    public int f2 { get; set; }
}

我也试过

代码语言:javascript
复制
JsonConvert.DeserializeObject<List<RootObject>>(json);

以及其他各种变体。异常文本开头“不能将当前的JSON数组(例如,1,2,3)反序列化为'jsontest.RootObject‘类型,因为该类型需要一个JSON对象(例如{”名称“:”值“})才能正确反序列化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-08 05:51:03

您的JSON对应于List<List<InnerObject>>,而不是RootObject[]。(对于后者,JSON需要如下所示:[{ "InnerObjects" : [{"f1": 1, "f2": 2}] }])。

尝试像这样反序列化:

代码语言:javascript
复制
var list = JsonConvert.DeserializeObject<List<List<InnerObject>>>(json);

小提琴:https://dotnetfiddle.net/ELnmfg

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37693053

复制
相关文章

相似问题

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