JSON/ru
한국어 · English · Polski · Suomi · Русский · 中文(中国) · 日本語
Обзор
JSON(JavaScript Object Notation) является формой представления данных, которая обеспечивает стандартизированный формат обмена данными, используя простой текст. Как следует из названия, форма представления основана на подмножестве языка программирования JavaScript; тем не менее, эта форма полностью не зависит от языка. Помимо того, что легко человеку читать и писать, форма данных также легка для машининного для разбора и генерации.
Также, по сравнению с XML, более удобна для восприятия человеком.
Объекты JSON
Объекты JSON являются не более чем наборами пар имя/значение, разделенных запятыми (которые часто называются члены), заключенные в фигурные скобки:
{"name1":value1, "name2":value2 ...}Для того, чтобы придать человеческий вид, для чтения и наглядности, пары имя/значение часто перечисляются в столбик:
{
"name1": value1,
"name2": value2
}Название должно быть строкой в двойных кавычках, в то время как значение может быть любым из следующих:
- простая строка, число, логическое значение или null (строки заключены в двойные кавычки):\
{
"id":1,
"имя":"Валерий Шипков",
"женат":false
}- массив, который представляет собой набор значений, разделенных запятыми в квадратных скобках:\
{
"простые_числа":[2, 3, 5, 7, 11, 13, 17],
"нечётные_числа":[1,3,5,7]}
}- объект, который представляет собой набор (имя пара/значение), заключенное в фигурные скобки:\
{
"адрес":{"улица":"Аксакова", "город":"Калининград", "Страна":"Россия"}
}Объекты JSON могут быть вложены произвольно для создания еще более сложных объектов:
{"user":
{ "ползь_номер": 1900,
"ползь_имя": "В.Шипков",
"пароль": "12345",
"группа": [ "admins", "users", "maintainers"]
}
}Правильный формат JSON
Есть несколько правил и руководящих принципов, которые определяют синтаксис JSON (см RFC 4627):
- Объекты JSON включаются в открывающиеся и закрывающиеся фигурные скобки
{ }.Пустой объект представлен только{ } - Массивы включаются в квадратные скобки
[ ]. Пустой массив представлен как[ ] - Члены представляются парами ключ/значение
- Ключ должен содержаться в двойных скобках
- Каждый участник ДОЛЖЕН иметь уникальный ключ в пределах структуры объекта
- Значение члена должно содержаться в двойных кавычках, если это строка
- Булевы значения представляются в виде true или false в нижнем регистре
- Числовые значения представляются в формате с плавающей точкой двойной точности; Экспоненциальное(научное) представление поддерживается; числа не должны иметь ведущих нулей
- "Управляющие" символы в строке должны быть экранированы с помощью обратной косой черты
- Null представляется как null в нижнем регистре
- Другие типы объектов, такие как даты, которые изначально не поддерживаются и должны быть преобразованы в строки, управляются анализатором/клиентом
- Каждый член объекта или каждое значения массива должно сопровождаться запятой, если это не последний элемент
- Общее требование к расширению JSON-файлов .json
- MIME-тип для JSON-файлов application/json
Реализации
Реализация JSON не очень строгим, и предоставляет много свободы действий клиентским приложением и/или синтаксическим анализаторам для обеспечения соблюдения руководящих принципов. Как обычно при написании кода:
- вы свободны в своих определениях
- соблюдайте стандарт при обмене данными.
Существуют две основных реализаций JSON:
Официальная спецификация синтаксиса JSON
Эта реализация строго придерживается руководящих принципов RFC 4627 и не допускает отклонений от спецификации.
Синтаксис Javascript
Эта реализация следует за реализацией языка программирования Javascript и как таковая позволяет несколько отклонений от официальной спецификации. Например:
- разрешает ключи не заключать в двойные кавычки
{имя: "Валерий Шипков" } - позволяет одиночные кавычки для ключей и/или строковых значений; и свободную смесь одиночных и двойных кавычек, например,
{'имя': "Валерий Шипков", "язык":'Pascal'} - позволяет запятую после последнего элемента массива и/или объекта, например,
{"ключ":["if","begin","for",], "IDEs":["Lazarus","fpIDE","MSEide"],}
Смотрите также
- fcl-json пакет, который реализует JSON для Free Pascal и Lazarus
- Официальный сайт JSON
- Streaming JSON/de - (Оригинальная немецкая статья)
- Streaming JSON/ru - (Русский перевод с английского)
- Streaming JSON - (английский перевод с оригинала на немецком)
From the Free Pascal wiki, page "JSON/ru", as it stood on 2016-03-14 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
