【发布时间】:2019-11-13 19:24:07
【问题描述】:
这是我第一次反序列化复杂的 JSON 字符串。这是我的模型:
public class Child
{
public List<object> children { get; set; }
public bool var { get; set; }
public string name { get; set; }
public bool leaf { get; set; }
public int category_id { get; set; }
}
public class Datum
{
public List<Child> children { get; set; }
public bool var { get; set; }
public string name { get; set; }
public bool leaf { get; set; }
public int category_id { get; set; }
}
public class RootObject
{
public List<Datum> data { get; set; }
}
然后我使用以下方法反序列化字符串:
RootObject rootobj = JsonConvert.DeserializeObject<RootObject>(response.Body);
这是我的结果: https://i.stack.imgur.com/4jiMA.png
我怎样才能正确处理这个结果?我正在使用 ASP.NET,如何在父数据中获取子数据以及如何全部使用它们?我在互联网上搜索了几天,但所有帮助都让我反序列化 JSON 响应,而不是如何使用它们。谢谢你的回答。
这是我的 Json 数据
【问题讨论】:
-
您是如何在您的课程中获得 JSON 结构的?它根本不代表您的 JSON 数据
-
嗨,Camilo,我使用了 Json2Csharp
-
快速查看您定义的类,
Child不应该存在,Datum应该有一个List<Datum>类型的列表 -
您认为您的结果到底有什么问题? “适当地”是什么意思?如果您反序列化到该结构,结果看起来几乎是您所期望的(顺便说一句,与上面的 cmets 相反,我认为从表面上看并不是特别成问题)。
data是一个数组,所以List<Datum>看起来是正确的,那么您在其中就有children作为另一个数组。所以如果你想得到孩子,你必须遍历或搜索这些列表,就像任何其他 C# 列表一样。那么你真的在问如何在 C# 中使用列表吗? -
@Bleep-Bloop 为什么
Child类不存在?显然,它代表 JSON 中(外部)children数组中的项目实例
标签: c# json list json.net json-deserialization