Как я могу перемещаться по любому дереву 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.