C# Unity Json反序列化/序列化嵌套数据
请帮帮我!我试图从一个json文件中读取一大块数据,大部分数据是一个列表!我不知道如何反序列化它 所以我找到了这个指南,并使用JsonFX和他一样做了 它帮助我反序列化除列表之外的所有其他我需要的信息 下面是一个json文件的示例,请记住我将其简化了十倍,因为这是一个巨大的数据集C# Unity Json反序列化/序列化嵌套数据,c#,json,deserialization,unity5,jsonfx,C#,Json,Deserialization,Unity5,Jsonfx,请帮帮我!我试图从一个json文件中读取一大块数据,大部分数据是一个列表!我不知道如何反序列化它 所以我找到了这个指南,并使用JsonFX和他一样做了 它帮助我反序列化除列表之外的所有其他我需要的信息 下面是一个json文件的示例,请记住我将其简化了十倍,因为这是一个巨大的数据集 { "name": "Croissant", "price": 60, "foo": [{ "poo": [1, 2] }, {
{
"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]
如果需要更多信息,我很乐意与大家分享,对不起,我是新来的 在这种情况下,最好使用以下网站 粘贴到JSON中,单击generate,它将为您提供符合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; }
}
公共类Foo
{
公共列表poo{get;set;}
}
公共类根对象
{
公共字符串名称{get;set;}
公共整数价格{get;set;}
公共列表foo{get;set;}
公共列表重要数据{get;set;}
}
然后,我个人使用NewtonSofts Json.net来转换Json,例如:;
使用Newtonsoft.Json;
字符串json=File.ReadAllText(“path\to\File.json”);
RootObject myRootObject=JsonConvert.DeserializeObject(json);
您可以使用示例数据try生成POCO类,这是一个在线工具。Visual Studio 2015及以后版本和VS代码也有类似的菜单项/命令来完成此操作
- 将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; }
}
公共类Foo
{
公共列表poo{get;set;}
}
公共类根对象
{
公共字符串名称{get;set;}
公共整数价格{get;set;}
公共列表foo{get;set;}
公共列表重要数据{get;set;}
}
VS代码示例:
Visual Studio 2015示例:
您的JSON无效。在这里验证:谢谢你,伙计!我最初考虑使用get和set方法,但在unitydoc上读到jsonutility(我使用的)不支持它,所以我不得不进行调整,但这确实帮了我很大的忙,现在我终于可以达到我想要达到的目标了!我想newtonsoft刚刚救了一条命
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; }
}