我尝试用未知计数迭代反序列化Json。我得到这种格式的菜单结构:
[{
"id": 15,
"item": "menuTop",
"child": {
"id": 16,
"item": "subMenu",
"child": {
"id": 17,
"item": "Result",
"child": null
}
}
}]:
它是我的json的一部分,所以我必须检查最后一个说明child的对象:null。否则,它可能会有或多或少的迭代次数。
这是我的代码。但它不起作用。我不确定我的课程项目是否正确,尤其是属性孩子
var result = JsonConvert.DeserializeObject<MenuItem>("mySerializedString");
class MenuItem
{
public long id { get; set; }
public string item { get; set; }
public List<MenuItem> child { get; set; }
}
答案 0 :(得分:2)
您必须反序列化为List<MenuItem>
,且儿童必须为MenuItem
而不是列表
var result = JsonConvert.DeserializeObject<List<MenuItem>>(json);
class MenuItem
{
public long id { get; set; }
public string item { get; set; }
public MenuItem child { get; set; }
}
<强>更新强>
正如@Alexei Levenkov向我指出的那样,谢谢你,有一些工具可以从json文件创建C#类。
有些网站可以粘贴你的json,它会生成你需要反序列化你的json所需的C#类,例如json2charp
在此Stackoverflow question,您可以找到更多信息。