C# Поиск свойства и возврат его значения в Newtonsoft JSON.Net ⇐ C#
-
Гость
C# Поиск свойства и возврат его значения в Newtonsoft JSON.Net
Я не могу сериализовать данные в объект C#, поскольку структура JSON не одинакова для одного и того же набора объектов. Существует ли какая-то функция, позволяющая выполнять поиск по всем свойствам JSON и их дочерним свойствам, чтобы вернуть значение искомого свойства?
Примеры данных, которые я получаю через API (я пытаюсь вернуть значение свойства «propertyIamLookingFor»):
Первый пример
{"виджет": { "отладка": "вкл", "окно": { "title": "Пример виджета Konfabulator", "name": "main_window", "propertyIamLookingFor": 500, "высота": 500 }, "изображение": { "src": "Изображения/Sun.png", "имя": "солнце1", «hOffset»: 250, «vOffset»: 250, "выравнивание": "центр" } }} Второй пример
{"виджет": { "отладка": "вкл", "окно": { "title": "Пример виджета Konfabulator", "name": "main_window", "высота": 500 }, "изображение": { "src": "Изображения/Sun.png", "имя": "солнце1", «hOffset»: 250, «vOffset»: 250, "выравнивание": "центр" }, "propertyIamLookingFor": 32 }} Третий пример
{"виджет": { "отладка": "вкл", "окно": { "title": "Пример виджета Konfabulator", "name": "main_window", "высота": 500 }, "изображение": { "src": "Изображения/Sun.png", "имя": "солнце1", «hOffset»: 250, «vOffset»: 250, "окно": { "title": "Пример виджета Konfabulator", "name": "main_window", «высота»: 500, "propertyIamLookingFor": 11 } } }} Обратите внимание, что свойство всегда имеет одно и то же имя, независимо от его положения, поэтому я знаю имя свойства и пытаюсь вернуть значение.
*Если кому-то интересно, я обращаюсь к плохому API, но у меня нет возможности не работать с ним.
Я не могу сериализовать данные в объект C#, поскольку структура JSON не одинакова для одного и того же набора объектов. Существует ли какая-то функция, позволяющая выполнять поиск по всем свойствам JSON и их дочерним свойствам, чтобы вернуть значение искомого свойства?
Примеры данных, которые я получаю через API (я пытаюсь вернуть значение свойства «propertyIamLookingFor»):
Первый пример
{"виджет": { "отладка": "вкл", "окно": { "title": "Пример виджета Konfabulator", "name": "main_window", "propertyIamLookingFor": 500, "высота": 500 }, "изображение": { "src": "Изображения/Sun.png", "имя": "солнце1", «hOffset»: 250, «vOffset»: 250, "выравнивание": "центр" } }} Второй пример
{"виджет": { "отладка": "вкл", "окно": { "title": "Пример виджета Konfabulator", "name": "main_window", "высота": 500 }, "изображение": { "src": "Изображения/Sun.png", "имя": "солнце1", «hOffset»: 250, «vOffset»: 250, "выравнивание": "центр" }, "propertyIamLookingFor": 32 }} Третий пример
{"виджет": { "отладка": "вкл", "окно": { "title": "Пример виджета Konfabulator", "name": "main_window", "высота": 500 }, "изображение": { "src": "Изображения/Sun.png", "имя": "солнце1", «hOffset»: 250, «vOffset»: 250, "окно": { "title": "Пример виджета Konfabulator", "name": "main_window", «высота»: 500, "propertyIamLookingFor": 11 } } }} Обратите внимание, что свойство всегда имеет одно и то же имя, независимо от его положения, поэтому я знаю имя свойства и пытаюсь вернуть значение.
*Если кому-то интересно, я обращаюсь к плохому API, но у меня нет возможности не работать с ним.
Мобильная версия