Sign in Join
Wiki copytemporary

JSON/ru: what changed

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

OldNewLine
11## Обзор
22
3-[JSON](http://www.json.org)(JavaScript Object Notation) является формой представления данных, которая обеспечивает стандартизированный формат обмена данными, используя простой текст. Как следует из названия, форма представления основана на подмножестве языка программирования JavaScript; тем не менее, эта форма полностью не зависит от языка. Помимо того, что легко человеку читать и писать, форма данных также легка для машининного для разбора и генерации.
3+[JSON](<http://www.json.org>)(JavaScript Object Notation) является формой представления данных, которая обеспечивает стандартизированный формат обмена данными, используя простой текст. Как следует из названия, форма представления основана на подмножестве языка программирования JavaScript; тем не менее, эта форма полностью не зависит от языка. Помимо того, что легко человеку читать и писать, форма данных также легка для машининного для разбора и генерации.
44
5-Также, по сравнению с XML, более удобна для восприятия человеком.
5+Также, по сравнению с XML, более удобна для восприятия человеком.
66
77## Объекты JSON
88
9-Объекты JSON являются не более чем наборами пар имя/значение, разделенных запятыми (которые часто называются члены), заключенные в фигурные скобки:
10-
11-``` javascript
9+Объекты JSON являются не более, чем наборами пар имя/значение, разделенных запятыми (которые часто называются члены), заключенные в фигурные скобки:
10+```
1211{"name1":value1, "name2":value2 ...}
1312```
1413
15-Для того, чтобы придать человеческий вид, для чтения и наглядности, пары имя/значение часто перечисляются в столбик:
16-
17-``` javascript
14+Для того, чтобы придать им человеческий вид для чтения и наглядности, пары имя/значение часто перечисляются в столбик:
15+```
1816{
19- "name1": value1,
20- "name2": value2
21-}
17+ "name1": value1,
18+ "name2": value2
19+ }
2220```
2321
24-Название должно быть строкой в двойных кавычках, в то время как значение может быть любым из следующих:
22+Название должно быть строкой в двойных кавычках, в то время как значение может быть любым из следующих:
2523
26-- простая строка, число, логическое значение или null (строки заключены в двойные кавычки):\
24+ * простая строка, число, логическое значение или null (строки заключены в двойные кавычки):
2725
28-``` javascript
26+```
2927{
30- "id":1,
31- "имя":"Валерий Шипков",
32- "женат":false
33-}
28+ "id":1,
29+ "имя":"Валерий Шипков",
30+ "женат":false
31+ }
3432```
3533
36-- массив, который представляет собой набор значений, разделенных запятыми в квадратных скобках:\
34+ * массив, который представляет собой набор значений, разделенных запятыми в квадратных скобках:
3735
38-``` javascript
36+```
3937{
40- "простые_числа":[2, 3, 5, 7, 11, 13, 17],
41- "нечётные_числа":[1,3,5,7]}
42-}
38+ "простые_числа":[2, 3, 5, 7, 11, 13, 17],
39+ "нечётные_числа":[1,3,5,7]}
40+ }
4341```
4442
45-- объект, который представляет собой набор (имя пара/значение), заключенное в фигурные скобки:\
43+ * объект, который представляет собой набор (имя пара/значение), заключенное в фигурные скобки:
4644
47-``` javascript
45+```
4846{
49- "адрес":{"улица":"Аксакова", "город":"Калининград", "Страна":"Россия"}
50-}
47+ "адрес":{"улица":"Аксакова", "город":"Калининград", "Страна":"Россия"}
48+ }
5149```
5250
53-Объекты JSON могут быть вложены произвольно для создания еще более сложных объектов:
54-
55-``` javascript
51+
52+Объекты JSON могут быть вложены произвольно для создания еще более сложных объектов:
53+```
5654{"user":
57- { "ползь_номер": 1900,
58- "ползь_имя": "В.Шипков",
59- "пароль": "12345",
60- "группа": [ "admins", "users", "maintainers"]
55+ { "польз_номер": 1900,
56+ "польз_имя": "В.Шипков",
57+ "пароль": "12345",
58+ "группа": [ "admins", "users", "maintainers"]
59+ }
6160 }
62-}
6361```
6462
6563## Правильный формат JSON
6664
67-Есть несколько правил и руководящих принципов, которые определяют синтаксис JSON (см RFC 4627):
65+Есть несколько правил и руководящих принципов, которые определяют синтаксис JSON (см RFC 4627):
6866
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**
67+ * Объекты JSON включаются в открывающиеся и закрывающиеся фигурные скобки `{ }`.Пустой объект представлен только `{ }`
68+ * Массивы включаются в квадратные скобки `[ ]`. Пустой массив представлен как `[ ]`
69+ * Члены представляются парами ключ/значение
70+ * Ключ должен содержаться в двойных кавычках
71+ * Каждый участник ДОЛЖЕН иметь уникальный ключ в пределах структуры объекта
72+ * Значение члена должно содержаться в двойных кавычках, если это строка
73+ * Булевы значения представляются в виде **true** или **false** в нижнем регистре
74+ * Числовые значения представляются в формате с плавающей точкой двойной точности; Экспоненциальное(научное) представление поддерживается; числа не должны иметь ведущих нулей
75+ * "Управляющие" символы в строке должны быть экранированы с помощью обратной косой черты
76+ * Null представляется как **null** в нижнем регистре
77+ * Другие типы объектов, такие как даты, которые изначально не поддерживаются и должны быть преобразованы в строки, управляются анализатором/клиентом
78+ * Каждый член объекта или каждое значения массива должно сопровождаться запятой, если это не последний элемент
79+ * Общее требование к расширению JSON-файлов **.json**
80+ * MIME-тип для JSON-файлов **application/json**
8381
8482## Реализации
8583
86-Реализация JSON не очень строгим, и предоставляет много свободы действий клиентским приложением и/или синтаксическим анализаторам для обеспечения соблюдения руководящих принципов. Как обычно при написании кода:
84+Реализация JSON не очень строгим, и предоставляет много свободы действий клиентским приложением и/или синтаксическим анализаторам для обеспечения соблюдения руководящих принципов. Как обычно при написании кода:
8785
88-- вы свободны в своих определениях
89-- соблюдайте стандарт при обмене данными.
86+ * вы свободны в своих определениях
87+ * соблюдайте стандарт при обмене данными.
9088
91-Существуют две основных реализаций JSON:
89+Существуют две основных реализаций JSON:
9290
9391### Официальная спецификация синтаксиса JSON
9492
95-Эта реализация строго придерживается руководящих принципов RFC 4627 и не допускает отклонений от спецификации.
93+Эта реализация строго придерживается руководящих принципов RFC 4627 и не допускает отклонений от спецификации.
9694
9795### Синтаксис Javascript
9896
99-Эта реализация следует за реализацией языка программирования Javascript и как таковая позволяет несколько отклонений от официальной спецификации. Например:
97+Эта реализация следует за реализацией языка программирования Javascript и как таковая позволяет несколько отклонений от официальной спецификации. Например:
10098
101-1. разрешает ключи не заключать в двойные кавычки `{имя: "Валерий Шипков" }`
102-2. позволяет одиночные кавычки для ключей и/или строковых значений; и свободную смесь одиночных и двойных кавычек, например, `{'имя': "Валерий Шипков", "язык":'Pascal'}`
103-3. позволяет запятую после последнего элемента массива и/или объекта, например,`{"ключ":["if","begin","for",], "IDEs":["Lazarus","fpIDE","MSEide"],}`
99+ 1. разрешает ключи не заключать в двойные кавычки ` {имя: "Валерий Шипков" }`
100+ 2. позволяет одиночные кавычки для ключей и/или строковых значений; и свободную смесь одиночных и двойных кавычек, например, `{'имя': "Валерий Шипков", "язык":'Pascal'}`
101+ 3. позволяет запятую после последнего элемента массива и/или объекта, например,`{"ключ":["if","begin","for",], "IDEs":["Lazarus","fpIDE","MSEide"],}`
104102
105103## Смотрите также
106104
107-- [[fcl-json]] пакет, который реализует JSON для Free Pascal и Lazarus
108-- [Официальный сайт JSON](http://www.json.org)
109-- [[Streaming JSON/de]] - (Оригинальная немецкая статья)
110-- [[Streaming JSON/ru]] - (Русский перевод с английского)
111-- [[Streaming JSON]] - (английский перевод с оригинала на немецком)
105+ * [[fcl-json]] пакет, который реализует JSON для Free Pascal и Lazarus
106+ * [Официальный сайт JSON](<http://www.json.org>)
107+ * [[Streaming JSON/de]] \- (Оригинальная немецкая статья)
108+ * [[Streaming JSON/ru]] \- (Русский перевод с английского)
109+ * [[Streaming JSON]] \- (английский перевод с оригинала на немецком)
112110
113111---
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).*
112+*From the Free Pascal wiki, page "JSON/ru", as the Internet Archive kept it on 2025-08-28, last changed on 2025-02-25. 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