1

请帮我!我正在尝试从 json 文件中读取大量数据,并且大部分数据是列表列表!我不知道如何反序列化它!

所以我找到了这个指南,并像他一样使用 JsonFX http://www.raybarrera.com/2014/05/18/json-deserialization-using-unity-and-jsonfx/

它帮助我反序列化除列表列表之外的所有其他信息。

以下是 json 文件的外观示例,请记住,我将其简化了十倍,因为这是一个巨大的数据集!

{
    "name": "Croissant",
    "price": 60,
    "foo": [{
            "poo": [1, 2]
        },
        {
            "poo": [3, 4]
        }
    ],
    "importantdata": [
        [
            0,
            1,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0
        ],
        [
            1,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0
        ]
    ]
}

那么我怎样才能把它变成一个对象并像这样获得我需要的数据myObject.importantdata[n]呢?

如果需要更多信息,我很乐意分享,对不起,我是新来的!

4

2 回答 2

2

您可以使用示例数据生成 POCO 类,尝试http://json2csharp.com/,这是一个在线工具。Visual Studio 2015 和 VS code 也有类似的菜单项/命令来完成此操作。

  • 将您的 json 字符串粘贴到那里
  • 您将获得所需的所有 POCO 课程。

为您的案例自动生成的结果是:

public class Foo
{
    public List<int> poo { get; set; }
}

public class RootObject
{
    public string name { get; set; }
    public int price { get; set; }
    public List<Foo> foo { get; set; }
    public List<List<int>> importantdata { get; set; }
}

VS 代码示例: 在此处输入图像描述

Visual Studio 2015 示例: 在此处输入图像描述

于 2017-07-21T05:43:17.227 回答
1

在这种情况下,通常最好使用http://json2csharp.com/之类的网站

粘贴到您的 JSON 中,单击生成,它将为您提供符合 JSON 结构的 C# 类列表。

在这种情况下,它给了我

public class Foo
{
    public List<int> poo { get; set; }
}

public class RootObject
{
    public string name { get; set; }
    public int price { get; set; }
    public List<Foo> foo { get; set; }
    public List<List<int>> importantdata { get; set; }
}

然后,我个人使用 NewtonSofts Json.net 与 JSON 进行转换,例如: http://www.newtonsoft.com/json

using Newtonsoft.Json;


string json = File.ReadAllText("path\to\file.json");
RootObject myRootObject = JsonConvert.DeserializeObject<RootObject>(json);
于 2017-07-21T05:02:43.487 回答