JSON (JavaScript Object Notation) — это текстовый формат обмена данными, который обычно хранится в файлах с расширением .json. Благодаря лаконичности по сравнению с XML он позволяет описывать достаточно сложные структуры, оставаясь при этом компактным и удобочитаемым.
Наибольшее распространение JSON получил в веб-разработке: его часто используют для обмена данными между сервером и клиентом. Кроме того, формат удобен для хранения настроек — благодаря наглядной структуре его легко воспринимать визуально. Однако важно учитывать: JSON не поддерживает комментарии ни в каком виде.
Структура JSON
В основе формата лежат две структуры данных:
- Ключ — значение. Такой набор соответствует записи, структуре или словарю.
- Упорядоченный список значений. Он аналогичен массиву, вектору или списку.
В качестве значений могут выступать:
- Объект — неупорядоченный набор пар «ключ : значение». Объект заключается в фигурные скобки
{ }, ключ и значение разделяются двоеточием, а пары — запятой. - Массив — упорядоченная коллекция значений, ограниченная квадратными скобками
[ ]. Элементы массива также разделяются запятой. - Значение — строка в двойных кавычках, число,
true,false,null, объект или массив. Все эти структуры могут быть вложены друг в друга. - Строка — записывается по правилам языка C; допускается использование escape-последовательностей, а также символов в шестнадцатеричном виде в кодировке Unicode.
- Число — также соответствует представлению в C и использует только десятичную систему счисления.
Пример объекта
Ниже приведён объект, в котором задействованы все перечисленные типы значений:
{
"hello": "world",
"t": true,
"f": false,
"n": null,
"i": 123,
"pi": 3.1416,
"a": [1, 2, 3, 4]
}
Разберём назначение ключей:
"hello": "world"— строка с ключомhelloимеет значениеworld."t": true— значение с ключомtравноtrue."f": false— значение с ключомfравноfalse."n": null— значение с ключомnравноnull."i": 123— число с ключомiравно123."pi": 3.1416— число с ключомpiравно3.1416."a": [1, 2, 3, 4]— массив с ключомaсодержит значения от 1 до 4.