Понимание JSON
JSON (JavaScript Object Notation) - это легковесный синтаксис для обмена данными, которые понимают как люди, так и машины. Как следует из названия, JSON основан на скриптовом языке JavaScript; однако, JSON сам по себе полностью не зависим от языка.
JSON является популярной нотацией для передачи данных между RESTful web-сервисами. Многочисленные библиотеки для большинства языков программирования позволяют легко парсить JSON данные, а многие web-фреймворки также поддерживают формирование JSON как данные ответа. А так как JSON занимает меньший размер, чем XML, то он является идеалом в условиях, когда скорость сети ограничена. К примеру, мобильные устройства часто имеют медленное соединение и поэтому выгоднее загружать меньше данных.
Официальный MIME-тип для JSON - application/json
, а JSON файлы обычно
имеют расширение .json
.
Структура
JSON состоит из двух основных структур:
- Пары имя/значение
- Упорядоченный список значений
Значения могут быть одним из нижеописанных типов, а также состоять друг в друге
- String (Unicode)
- Number
- Boolean (true или false)
- Array
- Object
- null (пусто)
Примеры
Этот объект имеет три поля, где "name" - string, "age" - number, "member" - boolean.
{
"name": "John",
"age": 35,
"member": false
}
Массивы состоят из списка значений, которые могут состоять из разных типов. Этот объект имеет два массива; массив "indexes" состоит из чисел, "names" - из строк.
{
"indexes": [5, 10, 15, 20],
"names": ["John", "Elizabeth", "Mary"]
}
Карта контактов для адресной книги является более сложным примером. Этот пример объединяет множество элементов, включая составные объекты и массивы.
{
"firstName": "John",
"lastName": "Smith",
"birthday": "1975-01-31",
"spouse": {
"firstName": "Mary",
"lastName": "Smith"
},
"addresses": [
{
"description": "home",
"street": "123 Peachtree Ln",
"city": "Atlanta",
"state": "GA",
"postalCode": 30305
},
{
"description": "work",
"street": "456 Peachtree St",
"city": "Atlanta",
"state": "GA",
"postalCode": 30305
}
],
"phoneNumbers": [
{
"description": "home",
"number": "404-555-1234"
},
{
"description": "mobile",
"number": "678-555-1234"
}
]
}
С оригинальным текстом урока вы можете ознакомиться на spring.io.
comments powered by Disqus