我正在尝试使用JSON.net反序列化大型JSON文件。我无法反序列化此文件中的嵌套字典。包含这些词典的对象的名称在文件中重复数千次。我提供的代码是我正在处理的文件的简短版本,以显示这些重复嵌套字典的示例。我正在寻找一种解决方案,可以将成千上万个“ image_uris”的内容反序列化为我认为的类,以便可以访问每个“ image_uris”中的“ small”,“ medium”和“ large”键和值对象。
[
{
"object":"card",
"id":"789",
"image_uris":
{
"small":"https://img...98713",
"medium":"https://img...89712",
"large":"https://img...97123",
}
},
{
"object":"card",
"id":"654",
"image_uris":
{
"small":"https://img...43243",
"medium":"https://img...26267",
"large":"https://img...00812",
}
},
{
"object":"card",
"id":"091",
"image_uris":
{
"small":"https://img...98760",
"medium":"https://img...92331",
"large":"https://img...87690",
}
}
]
我一直在使用C#和JSON.net开发Unity游戏引擎。我已尝试通过将其填充整个JSON文件来使用http://json2csharp.com/。它吐出了约1700行代码,并在顶部注释了实现说明。我不确定如何按照这些说明访问所有生成的类和这些类中的数据。这些说明如下:
// <auto-generated />
//
// To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
//
// using QuickType;
//
// var scryfallDefaultCards = ScryfallDefaultCards.FromJson(jsonString);
答案 0 :(得分:0)
不确定问题出在哪里,但我只是将您的JSON代码片段复制粘贴到您访问过的网站上并得到了这个信息:
public class ImageUris
{
public string small { get; set; }
public string medium { get; set; }
public string large { get; set; }
}
public class RootObject
{
public string @object { get; set; }
public string id { get; set; }
public ImageUris image_uris { get; set; }
}
但是您的JSON是一个数组,您应该像这样反序列化:
var result = JsonConvert.DeserializeObject<List<RootObject>>(jsonString);
使用较大的JSON字符串,效果应该相同