在Wp7应用程序中使用JSON.net反序列化JSON

时间:2011-08-22 21:13:07

标签: json windows-phone-7 json.net deserialization

我有这种JSON格式:

string jsonFormat = @"{ 
""Applications"": {
        ""data"": {
            ""Application named one"": [
                {
                    ""index"" : ""1"",
                    ""name"" : ""One"",
                    ""active"" : ""1"",
                    ""excluded"" : ""false""
                }
            ],
            ""Application named two"": [
                {
                    ""index"" : ""2"",
                    ""forum"" : ""yes"",
                }
            ]
        } 
    } 
}"; 

我究竟能如何访问data个孩子?我需要检索Application named oneApplication named two - 每个属性及其值 - 属性与应用程序不同。

直到现在我还有:

        JObject resultt= JObject.Parse(jsonFormat);
        // get JSON result objects into a list
        IList<JToken> results = resultt["Applications"]["data"].Children().ToList();

我查看了JSON.net文档,找不到解决方案......

任何帮助都非常有用。谢谢。

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找这样的东西:

JObject jObject = JObject.Parse(jsonFormat);
int index = jObject
    .Value<JObject>("Applications")
    .Value<JObject>("data")
    .Value<JArray>("Application named one")
    .First
    .Value<int>("index");

基本上我的想法是使用Value方法和你期望的类型来检索特定的json元素(JObject,JArray,...)或解析.NET值(int,string,bool, ...)。