从json动态生成c#类
我通常使用生成c#的json类。但我确实有问题。我的json就是这样的动态深度从json动态生成c#类,c#,json,silverlight,windows-phone-7,mvvm,C#,Json,Silverlight,Windows Phone 7,Mvvm,我通常使用生成c#的json类。但我确实有问题。我的json就是这样的动态深度 { "kategori": [ { "id": "1", "namakategori": "Tips & Trick", "parent_id": "0", "children": [ {
{
"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个或更多的深度。您可以始终使用Newtonsoft.Json 比如说,
JObject result = (JObject) JsonConvert.DeserializeObject(yourJsonDataHere);
var katObject = result.Property("kategori").Value;
等等
PS:不确定WP7是否支持Newtonsoft.Json。您不需要动态取消类的清除。这应该起作用:
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; }
}
公共类子类
{
公共字符串id{get;set;}
公共字符串namakategori{get;set;}
公共字符串父\u id{get;set;}
公共列表子类{get;set;}//难道一个类还不够吗?类似于classjsonclass{int-id{get;set;}字符串namakategori{get;set;}int-parent_-id{get;set;}列表子类{get;set;}jsonClass(){children new List();}
如果我只想从该json绑定子对象?或者如果我只想绑定父对象json?从这些类中,我只能让子对象和父对象成为一个类,我找不到如何区分父对象和子对象数据如果我只想从该json绑定子对象?或者如果我只想从这些类中绑定父对象json,我只能y可以使子类和父类成为一个类,而我找不到如何区分父类和子类data@blueboyz因为没有区别。每个孩子都是另一个孩子的父母把它当成一棵树。你应该遍历你的树来寻找所需的节点。任何示例代码?也许我是如何解析它的。我仍然不能理解你的意思。我需要的是对父和子进行不同的绑定,这样我就可以在具有父和子格式的列表框中显示它。differently@blueboyz如果你能做你想做的事,你就会我没有问过这个问题。答案就在上面。如何遍历一棵树(使用堆栈或递归函数)是另一个问题(超出了本文的范围)。它可以绑定到listbox吗?我希望以后这些类可以绑定到具有不同父级和子级的listbox
var res = JsonConvert.DeserializeObject<RootObj>(json);