从 json 动态生成 c# 类
本文关键字:json 动态 | 更新日期: 2023-09-27 17:55:15
我通常使用 json2csharp 为 c# 生成 json 类。但我确实有问题。我的json有这样的动态深度
{
"kategori": [
{
"id": "1",
"namakategori": "Tips & Trick",
"parent_id": "0",
"children": [
{
"id": "348",
"namakategori": "Fotografi",
"parent_id": "1",
"children": []
},
{
"id": "370",
"namakategori": "Hacking",
"parent_id": "1",
"children": []
}
]
},
{
"id": "12",
"namakategori": "Aplikasi",
"parent_id": "0",
"children": [
{
"id": "13",
"namakategori": "Tools",
"parent_id": "12",
"children": [
{
"id": "14",
"namakategori": "Toolsorder",
"parent_id": "13",
"children":[]
},
]
},
]
},
]
}
那么如何动态生成 json 类以便它可以用于我的 json?在上面的例子中,我有 3 个深度。但是如果我转到不同的页面,它可能有 4 个或更多的深度。
你不需要
动态地解冻你的类。这应该有效:
public class Child
{
public string id { get; set; }
public string namakategori { get; set; }
public string parent_id { get; set; }
public List<Child> children { get; set; } // <-- See this
}
public class RootObj
{
public List<Child> kategori { set; get; }
}
要反序列化,我将使用 Json.Net
var res = JsonConvert.DeserializeObject<RootObj>(json);
您可以随时使用 Newtonsoft.Json
例如
JObject result = (JObject) JsonConvert.DeserializeObject(yourJsonDataHere);
var katObject = result.Property("kategori").Value;
等等...
PS:不确定WP7是否支持Newtonsoft.Json。