C# Перебор всех элементов многомерного массива
Есть массив объектов, который я получаю при десериализации ответа от сервера (json), получается довольно много вложенностей, существует ли унифицированный способ(метод) перебрать все элементы данного массива, в данном случае мне нужно проверить все элементы на null.
Пример ответа от сервера:
{
"regionList": [
{
"ord": 1,
"subwayLines": [
{
"isn": 1477671903,
"stations": [
{
"isn": 1477963903,
"name": "str"
}
]
}
]
}
]
}
Ответы (1 шт):
Вы не можете ДОСТОВЕРНО проверить json ответ на наличие null в полях, т.к. поля содержащие null могут быть просто отброшены сериализатором и не попасть в json, а в структуре данных они есть.
Если вы не знаете структуру данных, то имхо, это плохая задача, но решается очень просто (на коленке с багами), через (Contains(": null") || Contains(":null")), если конечно это вхождение не внутри строки, но даже тогда вы по сути проверите json внутри json =)
Есть более надёжный вариант, искать JsonToken, как предложил aepot, но описывать не буду, т.к. я им не пользовался. Но опять-же если сериализатор отбросит - то это вам не поможет.
Единственно правильный вариант - знать модель и корректно десериализовать, а уже методами в модели проверять на null. Можно даже через рефлексию, чтобы не плодить методы для каждого класса.