2011-09-20 5 views
2

Я хочу проанализировать некоторые данные JSON. Я использую James Newton-King's JSON.NET library.JSON в .NET C#/Csharp - Получение значений из объекта

Я разбираю строку JSON в JObject. Вот JSON, который я анализирую:

"root": [ 
{ 
    "date": 1325400000000, 
    "id": 12313131, 
    "loc": "en_us", 
    "name": "New York, NY", 
    "products": [ 
    { 
     "@type": "asdf", 
     "city": "New York - Penn Station, NY (NYP)", 
     "code": "USA", 
    } 
    ], 
    "summary": { 
    "alert": [], 
    "end": 1325577000000, 
    "start": 1325400000000 
    } 
} 
] 
} 

Как видите, это довольно сложно. «Корень» был необходим, потому что другие данные не могли быть проанализированы в экземпляр JObject.

JObject o = JObject.Parse(jsonString); 

Данные JSON довольно большие. В нем есть несколько элементов с разными идентификаторами. Я хочу найти элемент с определенным идентификатором.

Проблема заключается в том, что когда я пытаюсь пропустить данные, у нее есть только один элемент.

KEY: root 
VALUE: the other stuff. 

Итак, как мне добраться до другого материала и пройти через то, что внутри?

ответ

5

Nevermind ..

Я просто решил.

Я удалил конечный [и конец].

Так что теперь Действительный объект Json и Key Value Еогеасп работает как шарм ..

  foreach (KeyValuePair<String, JToken> d in o) 
      { 
       Console.WriteLine(String.Format("Key: {0}; Value: {1}", d.Key, d.Value)); 
      } 

Ура!

Оказалось, что это лишь частичное решение. Потому что теперь остальные не отформатированы только в первом сегменте. Остальные как-то исчезают ...: S Блин это ...

Даже лучшее решение ... Я был полным идиотом ...

Оставьте все на месте и просто использовать JArray ja = JArray.Parse(stringOfJson);

Это будет дайте вам массив, полный всех данных, которые можно свободно перебирать ... Удивительно. :)

Смежные вопросы