Десериализовать JSON с помощью JSON.net в приложении Wp7 - PullRequest
0 голосов
/ 23 августа 2011

У меня есть этот формат 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 one и Application 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 Ответ

1 голос
/ 29 августа 2011

Я думаю, вы ищете что-то вроде этого:

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, .. .).

...