C# Перебор всех элементов многомерного массива

Есть массив объектов, который я получаю при десериализации ответа от сервера (json), получается довольно много вложенностей, существует ли унифицированный способ(метод) перебрать все элементы данного массива, в данном случае мне нужно проверить все элементы на null.

Пример ответа от сервера:

{
  "regionList": [
    {
      "ord": 1,
      "subwayLines": [
        {
          "isn": 1477671903,
          "stations": [
            {
              "isn": 1477963903,
              "name": "str"
            }
          ]
        }
      ]
    }
  ]
}

Ответы (1 шт):

Автор решения: Blackmeser

Вы не можете ДОСТОВЕРНО проверить json ответ на наличие null в полях, т.к. поля содержащие null могут быть просто отброшены сериализатором и не попасть в json, а в структуре данных они есть.

Если вы не знаете структуру данных, то имхо, это плохая задача, но решается очень просто (на коленке с багами), через (Contains(": null") || Contains(":null")), если конечно это вхождение не внутри строки, но даже тогда вы по сути проверите json внутри json =)

Есть более надёжный вариант, искать JsonToken, как предложил aepot, но описывать не буду, т.к. я им не пользовался. Но опять-же если сериализатор отбросит - то это вам не поможет.

Единственно правильный вариант - знать модель и корректно десериализовать, а уже методами в модели проверять на null. Можно даже через рефлексию, чтобы не плодить методы для каждого класса.

→ Ссылка