json и пустой массив

#arrays #json

#массивы #json

Вопрос:

У меня есть следующий json :

 {
   "users":
    [{
       "user": 
        {
        "user_id"  :"a11uhk22hsd3jbskj",
        "username" :"tom",
        "location" : null
        }
    }]
}
  

Я получаю этот json в ответ на запрос к api. Глядя на документ для этого api, местоположение должно быть массивом (содержащим геоданные, адрес широты, долготы и т.д.).
Теперь вопрос в том, есть ли ошибка в json? Я имею в виду, что location, по-моему, не является массивом, или возможно таким образом представить нулевой массив? и если да, то в чем разница между :

 "location" : null 
"location" : []
  

Ответ №1:

 "location" : null // this is not really an array it's a null object
"location" : []   // this is an empty array
  

Похоже, что этот API возвращает null, когда местоположение не определено — вместо возврата пустого массива, что на самом деле не так уж необычно, — но они должны сообщить вам, собираются ли они это делать.

Комментарии:

1. Привет, как проверить наличие пустого массива??

Ответ №2:

null является допустимым значением (и зарезервированным словом) в JSON, но некоторые среды не имеют «нулевого» объекта (в отличие от NULL значения) и, следовательно, не могут точно представлять JSON null . Поэтому они иногда будут представлять его как пустой массив.

Является ли null допустимым значением в этом конкретном элементе этого конкретного API, полностью зависит от разработчика API.

Ответ №3:

Первая версия представляет собой нулевой объект, в то время как вторая представляет собой объект массива с нулевыми элементами.

Здесь Null может означать, например, что для этого пользователя недоступно местоположение, местоположение не было запрошено или что применяются некоторые ограничения. Сложно сказать без ссылки на API.