JSON является наиболее распространенным форматом ответов API REST. Посмотрим на ответ JSON для конечной точки прогноза погоды OpenWeatherMap более детально, различая массивы и объекты в JSON.
Ответ JSON от конечной точки прогноза погоды OpenWeatherMap
Объект JSON это пара ключ-значение
Массив JSON это списки пунктов
Состав объектов в массиве и массивов в объекте
JSON расшифровывается как JavaScript Object Notation. Это наиболее распространенный способ возврата информации API REST. Несмотря на то, что некоторые API возвращают информацию как в JSON, так и в XML, лучше использовать JSON для анализа ответа и отображения его на веб-странице. Так как JSON намного лучше вписывается в существующую технологию JavaScript + HTML + CSS, которая поддерживает большинство веб-страниц/ С помощью JavaScript вы можете легко анализировать JSON и интегрировать его в свой веб-контент.
Развернутый ответ от конечной точки прогноза погоды OpenWeatherMap будет выглядеть примерно так:
{
"coord": {
"lon": -121.96,
"lat": 37.35
},
"weather": [
{
"id": 801,
"main": "Clouds",
"description": "few clouds",
"icon": "02d"
}
],
"base": "stations",
"main": {
"temp": 70.14,
"pressure": 1012,
"humidity": 33,
"temp_min": 62.6,
"temp_max": 75.2
},
"visibility": 16093,
"wind": {
"speed": 14.99,
"deg": 330
},
"clouds": {
"all": 20
},
"dt": 1522619760,
"sys": {
"type": 1,
"id": 479,
"message": 0.0058,
"country": "US",
"sunrise": 1522590707,
"sunset": 1522636288
},
"id": 420006397,
"name": "Santa Clara",
"cod": 200
}
Проанализируем структуру информации этого ответа ниже.
JSON в совей структуре имеет две базовые сущности:
- объект;
- массив.
Объект представляет собой набор пар ключ-значение, заключенных в фигурные скобки:
{
"key1": "value1",
"key2": "value2"
}
Каждая пара ключ-значение заключена в двойные кавычки, и являются строками. Если значение представляет собой integer (целое число) или Boolean (значение true или false), то у значения двойные кавычки не ставятся. Каждая пара ключ-значение отделяется от следующей запятой.
Массивом в JSONe является список элементов, заключенных в квадратные скобки:
["first", "second", "third"]
Список элементов может содержать строки, числа, логические значения, массивы или другие объекты. Для целочисленных или логических значений кавычки не используются.
Массив целых чисел:
[1, 2, 3]
Массив логических значений:
[true, false, true]
JSON может содержать объекты и массивы внутри друг друга. Пример массива объектов:
[
object,
object,
object
]
Пример со значениями:
[
{
"name":"Tom",
"age":39
},
{
"name":"Shannon",
"age":37
}
]
Объекты могут содержать массивы в части значения пары ключ-значение:
{
"children": ["Avery","Callie","lucy","Molly"],
"hobbies": ["swimming","biking","drawing","horseplaying"]
}
Нужно помнить, что объекты заключаются в фигурные скобки {} и содержат пары ключ-значение. Иногда эти значения могут являться массивами. Массивы представляют собой списки и заключаются в квадратные скобки []. Обычно массивы содержат списки объектов, а объекты - массивы.
Важно понимать разницу между объектами и массивами, потому что это определяет способ доступа и отображения информации. Упражнения с точечной нотацией. которые будут дальше потребуют понимания этой разницы.
Посмотрим на ответ конечной точки погоды API OpenWeatherMap. Что является объектами? Где находятся массивы? Какие объекты являются вложенными? Какие значения являются логическими значениями а какие строками?
Для дополнительной информации и понимании формата JSON можно изучить страницу json.com