Как я могу перемещаться по любому дереву JSON в C#?

Мне нужно перемещаться по структуре Json так же, как и по XML, используя XmlDocument,

Структура не известна, и мне нужно перебирать узлы для анализа некоторых данных.

Это возможно?
Я знаю, что могу использовать JavaScriptSerializer десериализовать его в известный тип, но это не так, поскольку я могу получить любой действительный JSON.

Я использую.NET 3.5 (SP1) и не могу обновить до 4.0 в данный момент.
Я обновил до.NET 4.0, чтобы использовать динамические типы (что является удивительным кодом)

1 ответ

Решение

Прочитайте эту статью:

Он объясняет вам способ синтаксического анализа JSON для динамического объекта, в котором есть словарь.

Таким образом, итерация словаря была бы хороша с LINQ, не так ли?

--- ИЛИ ЕСЛИ ТЫ В.NET 3.5... ---;)

Почему бы вам не реализовать метод расширения, такой как "ToDictionary"?

Вы можете получить текст в формате JSON, затем проанализировать его с помощью регулярного выражения и разделить свойства и значения в словарь, и все это будет сделано с помощью предложенного метода расширения.

Пример того, как это будет работать, что:

IDictionary<string, object> deserializedJson = jsonText.ToDictionary();

Соответствует вашим потребностям?

--- ДАЖЕ ЕЩЕ ДРУГОЙ ПОПРОБУЙТЕ (теперь у вас есть больше вариантов)! ---

Проверьте этот проект с открытым исходным кодом на CodePlex:

Он имеет LINQ-to-JSON, поэтому вы можете читать и писать JSON.

Другие вопросы по тегам