- Регистрация
- 30.05.2019
- Сообщения
- 3 521
- Благодарностей
- 1 319
- Баллы
- 113
Доброго времени суток. Подскажите, пожалуйста, есть в переменной много обьектов Json, в которых нужно найти конечную переменную, которая может быть на разной глубине в обьекте:
На скрине показано, что например name и type находится аж в 3-х переходах, сначала в data - 22 строка, потом в assets 30 строка, потом в format 12-13 строка. Т.е. как-то нужно перебрать все внутренности и найти на всех глубинах name и type например, но name и type, так же могут находится в разных дорогах:
Потом при нахождении например name, нужно будет найти его брата type, который находится на его же дороге или в его же обьекте.
Парсинг по google, не дал желаемых результатов, додумался лишь методом палок к перебору через for, например так:
Как логичнее будет сделать через Newton JSON так, что бы оперативнее найти name на любом уровне, а потом, когда узнали name - найти его брата type?
Код:
data[0][assets][0]["name"]
data[0]["name"]
и т.д.
Парсинг по google, не дал желаемых результатов, додумался лишь методом палок к перебору через for, например так:
C#:
// Перебор в цикле всех обьектов в json - именно по вхождениям data
for (int i = 0; i < SpisokTovarov["data"].Count(); i++)
{
// 2 Перебор всех обьектов в json - по вхождениям assets
for (int i2 = 0; i2 < 100; i2++)
{
// Попытка найти нужное в Json
try
{
// Если мы нашли нужный template_id, тогда записываем в список
if (Convert.ToString(SpisokTovarov["data"][i]["assets"][i2]["name"]) == name)
{
// Запись совпадения!
Spisok.Add(Convert.ToString(SpisokTovarov["data"][i]["assets"][i2]["name"]));
}
}
// Ловим ошибку если будет
catch
{
}
}
Как логичнее будет сделать через Newton JSON так, что бы оперативнее найти name на любом уровне, а потом, когда узнали name - найти его брата type?