从json动态生成c#类

从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": [ {

我通常使用生成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个或更多的深度。

您可以始终使用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);