Sign in Join
Wiki copytemporary

JSON/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: JSON/ru

OldNewLine
1+## Обзор
2+
3+[JSON](http://www.json.org)(JavaScript Object Notation) является формой представления данных, которая обеспечивает стандартизированный формат обмена данными, используя простой текст. Как следует из названия, форма представления основана на подмножестве языка программирования JavaScript; тем не менее, эта форма полностью не зависит от языка. Помимо того, что легко человеку читать и писать, форма данных также легка для машининного для разбора и генерации.
4+
5+Также, по сравнению с XML, более удобна для восприятия человеком.
6+
7+## Объекты JSON
8+
9+Объекты JSON являются не более чем наборами пар имя/значение, разделенных запятыми (которые часто называются члены), заключенные в фигурные скобки:
10+
11+``` javascript
12+{"name1":value1, "name2":value2 ...}
13+```
14+
15+Для того, чтобы придать человеческий вид, для чтения и наглядности, пары имя/значение часто перечисляются в столбик:
16+
17+``` javascript
18+{
19+ "name1": value1,
20+ "name2": value2
21+}
22+```
23+
24+Название должно быть строкой в двойных кавычках, в то время как значение может быть любым из следующих:
25+
26+- простая строка, число, логическое значение или null (строки заключены в двойные кавычки):\
27+
28+``` javascript
29+{
30+ "id":1,
31+ "имя":"Валерий Шипков",
32+ "женат":false
33+}
34+```
35+
36+- массив, который представляет собой набор значений, разделенных запятыми в квадратных скобках:\
37+
38+``` javascript
39+{
40+ "простые_числа":[2, 3, 5, 7, 11, 13, 17],
41+ "нечётные_числа":[1,3,5,7]}
42+}
43+```
44+
45+- объект, который представляет собой набор (имя пара/значение), заключенное в фигурные скобки:\
46+
47+``` javascript
48+{
49+ "адрес":{"улица":"Аксакова", "город":"Калининград", "Страна":"Россия"}
50+}
51+```
52+
53+Объекты JSON могут быть вложены произвольно для создания еще более сложных объектов:
54+
55+``` javascript
56+{"user":
57+ { "ползь_номер": 1900,
58+ "ползь_имя": "В.Шипков",
59+ "пароль": "12345",
60+ "группа": [ "admins", "users", "maintainers"]
61+ }
62+}
63+```
64+
65+## Правильный формат JSON
66+
67+Есть несколько правил и руководящих принципов, которые определяют синтаксис JSON (см RFC 4627):
68+
69+- Объекты JSON включаются в открывающиеся и закрывающиеся фигурные скобки `{ }`.Пустой объект представлен только `{ }`
70+- Массивы включаются в квадратные скобки `[ ]`. Пустой массив представлен как `[ ]`
71+- Члены представляются парами ключ/значение
72+- Ключ должен содержаться в двойных скобках
73+- Каждый участник ДОЛЖЕН иметь уникальный ключ в пределах структуры объекта
74+- Значение члена должно содержаться в двойных кавычках, если это строка
75+- Булевы значения представляются в виде **true** или **false** в нижнем регистре
76+- Числовые значения представляются в формате с плавающей точкой двойной точности; Экспоненциальное(научное) представление поддерживается; числа не должны иметь ведущих нулей
77+- "Управляющие" символы в строке должны быть экранированы с помощью обратной косой черты
78+- Null представляется как **null** в нижнем регистре
79+- Другие типы объектов, такие как даты, которые изначально не поддерживаются и должны быть преобразованы в строки, управляются анализатором/клиентом
80+- Каждый член объекта или каждое значения массива должно сопровождаться запятой, если это не последний элемент
81+- Общее требование к расширению JSON-файлов **.json**
82+- MIME-тип для JSON-файлов **application/json**
83+
84+## Реализации
85+
86+Реализация JSON не очень строгим, и предоставляет много свободы действий клиентским приложением и/или синтаксическим анализаторам для обеспечения соблюдения руководящих принципов. Как обычно при написании кода:
87+
88+- вы свободны в своих определениях
89+- соблюдайте стандарт при обмене данными.
90+
91+Существуют две основных реализаций JSON:
92+
93+### Официальная спецификация синтаксиса JSON
94+
95+Эта реализация строго придерживается руководящих принципов RFC 4627 и не допускает отклонений от спецификации.
96+
97+### Синтаксис Javascript
98+
99+Эта реализация следует за реализацией языка программирования Javascript и как таковая позволяет несколько отклонений от официальной спецификации. Например:
100+
101+1. разрешает ключи не заключать в двойные кавычки `{имя: "Валерий Шипков" }`
102+2. позволяет одиночные кавычки для ключей и/или строковых значений; и свободную смесь одиночных и двойных кавычек, например, `{'имя': "Валерий Шипков", "язык":'Pascal'}`
103+3. позволяет запятую после последнего элемента массива и/или объекта, например,`{"ключ":["if","begin","for",], "IDEs":["Lazarus","fpIDE","MSEide"],}`
104+
105+## Смотрите также
106+
107+- [[fcl-json]] пакет, который реализует JSON для Free Pascal и Lazarus
108+- [Официальный сайт JSON](http://www.json.org)
109+- [[Streaming JSON/de]] - (Оригинальная немецкая статья)
110+- [[Streaming JSON/ru]] - (Русский перевод с английского)
111+- [[Streaming JSON]] - (английский перевод с оригинала на немецком)
112+
113+---
114+*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](/wiki-contact).*

Back to history