JSON
JSON (англ. JavaScript Object Notation) — это легкий формат обмена данными. Отличительной чертой является то, что он легкочитаем для человека. Этот формат легко обрабатывается и генерируется программами. Он основан на языке JavaScript, Standard ECMA-262 3rd Edition — December 1999.
JSON — это текстовый формат, не зависящий от языка программирования. JSON использует соглашения близкие к Си-подобным языкам, включая C, C++, C#, Java, JavaScript, Perl, Python, и много других. Все это делает JSON идеальным языком для обмена данными.
JSON строится на двух структурах:
- Набор пар имя/значение. В различных языках это реализовано как объект, запись, структура, словарь, хеш-таблица, список с ключем или ассоциативный массив.
- Упорядоченный список значений. Во многих языках это реализовано как массив, вектор, список, или последовательность.
Это универсальные структуры данных. Теоретически все современные языки программирования поддерживают их в одной или другой форме. Так как JSON используется для обмена данными между различными языками программирования, то имеет смысл строить его на этих структурах.
В JSON используются их следующие формы:
- Объект — это неупорядоченное множество пар имя/значение. Объект начинается с символа { и заканчивается символом }. Каждое значение следует за : и пары имя/значение отделяются запятыми.
- Массив — это упорядоченное множество значений. Массив начинается символом [ и заканчивается символом ]. Значения отделяются запятыми.
- Значение может быть строкой в двойных кавычках, или числом, или true, или false, или null, или объектом, или массивом. Эти структуры могут быть вложены друг в друга.
- Строка — это упорядоченное множество из нуля или более символов юникода, заключенные в двойные кавычки, с использованием escape-последовательностей начинающихся с обратной косой черты (backslash). Символы представляются простой строкой.
За исключением нескольких деталей, эти диаграммы полностью описывают язык:
Строка очень похожа на строку в языках С и Java. Число тоже очень похоже на С или Java-число, за исключением того, что восьмеричные и шестнадцатеричные форматы не используются.
Пробелы могут быть вставлены между любыми двумя символами.