Проект

Общее

Профиль

JSON » История » Версия 2

Александр Александров, 25.04.2019 16:19

1 1 Александр Александров
h1. JSON
2
3
h2. Вопросы
4
5
# Что такое JSON?
6
# Что такое JSON Schema?
7
# Что такое JSON объект?
8
# Какие есть правила синтаксиса JSON объекта (массива)? Приведите пример объекта JSON?
9
# Какие типы данных, поддерживаются в JSON?
10
# Каковы недостатки JSON?
11
# Что такое JSONP?
12
# Какое расширение JSON-файла?
13
# Какой MIME-тип в JSON?
14
# Для чего используется JSON?
15
# Какие преимущества использования JSON?
16
# Какие браузеры поддерживают JSON?
17
# Какая функция используется для преобразования текста JSON в объект?
18
# Что такое JSON Parser?
19
# Что такое JSON-RPC?
20
# Что такое JSON-RPC-Java?
21
# Какова роль JSON.stringify?
22
# Как создать JSON из массива PHP?
23
# Как получить PHP массив из JSON объекта?
24
# Как парсить JSON в JQuery?
25
# Какая функция используется для кодирования JSON в PHP?
26
# Как парсить JSON в JavaScript?
27
# Как создать JSON объект из JavaScript?
28
# Валидациия JSON в PHP?
29
# Валидациия JSON в javascript?
30
# Валидациия JSON в jQuery?
31
# Как получить JSON ответ в Ajax?
32
33
h2. Ответы
34
35
h3. Что такое JSON?
36
37 2 Александр Александров
JSON (JavaScript Object Notation) - простой формат обмена данными, удобный для чтения и написания как человеком, так и компьютером. Он основан на JavaScript.
38
39
JSON - текстовый формат, полностью независимый от языка реализации, но он использует соглашения, знакомые программистам C-подобных языков, таких как C, C++, C#, Java, JavaScript, Perl, Python и многих других. Эти свойства делают JSON идеальным языком обмена данными.
40
41 1 Александр Александров
h3. Что такое JSON Schema?
42
43 2 Александр Александров
JSON Schema - это стандарт описания структур данных в формате JSON. Использует синтаксис JSON. Схемы, описанные этим стандартом, имеют MIME "application/schema+json". Стандарт удобен для использования при валидации и документировании структур данных, состоящих из чисел, строк, массивов и структур типа ключ-значение.
44
45 1 Александр Александров
h3. Что такое JSON объект?
46
47 2 Александр Александров
JSON объект - неупорядоченный набор пар ключ/значение. Объект начинается с { (открывающей фигурной скобки) и заканчивается } (закрывающей фигурной скобкой). Каждое имя сопровождается : (двоеточием), пары ключ/значение разделяются , (запятой).
48
49 1 Александр Александров
h3. Какие есть правила синтаксиса JSON объекта (массива)? Приведите пример объекта JSON?
50
51 2 Александр Александров
Есть несколько основных правил для создания строки JSON:
52
53
* Строка JSON содержит либо массив значений, либо объект (ассоциативный массив пар имя/значение).
54
* Массив заключается в квадратные скобки ([ и ]) и содержит разделенный запятой список значений.
55
* Объект заключается в фигурные скобки ({ и }) и содержит разделенный запятой список пар имя/значение.
56
* Пара имя/значение состоит из имени поля, заключенного в двойные кавычки, за которым следует двоеточие (:) и значение поля.
57
58
Чтобы включить двойные кавычки в строку, нужно использовать обратную косую черту: \". Так же, как и во многих языках программирования, можно помещать управляющие символы и шестнадцатеричные коды в строку, предваряя их обратной косой чертой.
59
60
Ниже приводится пример оформления заказа в формате JSON:
61
62
{{dmsf_image(362)}}
63
64 1 Александр Александров
h3. Какие типы данных, поддерживаются в JSON?
65
66 2 Александр Александров
Значение в массиве или объекте может быть:
67
68
* Числом (целым или с плавающей точкой)
69
* Строкой (в двойных кавычках)
70
* Логическим значением (true или false)
71
* Другим массивом (заключенным в квадратные скобки)
72
* Другой объект (заключенный в фигурные скобки)
73
* Значение null
74
75 1 Александр Александров
h3. Каковы недостатки JSON?
76
77 2 Александр Александров
Недостатками JSON являются:
78
* трудно читается и анализируется пользователем, нет визуальности.
79
* нет синтаксиса для задания типа объекта.
80
* много синтаксического мусора.
81
82 1 Александр Александров
h3. Что такое JSONP?
83
84 2 Александр Александров
JSONP или "JSON with padding" является расширением JSON, позволяющим выполнять в единообразном стиле асинхронные запросы к сервисам, расположенным на другом домене - операцию, запрещённую в типичных веб-браузерах из-за политики ограничения домена.
85
86 1 Александр Александров
h3. Какое расширение JSON-файла?
87
88 2 Александр Александров
<pre>
89
.json
90
</pre>
91
92 1 Александр Александров
h3. Какой MIME-тип в JSON?
93
94 2 Александр Александров
<pre>
95
"application/json"
96
</pre>
97
98 1 Александр Александров
h3. Для чего используется JSON?
99
100 2 Александр Александров
Наиболее частое распространенное использование JSON - пересылка данных между сервером и браузером, а так же для хранения данных. Обычно данные JSON доставляются с помощью AJAX, который позволяет обмениваться данными браузеру и серверу без необходимости перезагружать страницу.
101
102 1 Александр Александров
h3. Какие преимущества использования JSON?
103
104 2 Александр Александров
Сравнительные преимущества JSON:
105
106
* В разы меньший объем данных (экономия трафика, плюс к скорости работы сайта)
107
* Меньшая загрузка процессора и клиента, и сервера
108
* Почти неограниченные возможности расширения (т.к. можно выполнить ф-цию)
109
* Его предложения легко читаются и составляются как человеком, так и компьютером.
110
* Его легко преобразовать в структуру данных для большинства языков программирования (числа, строки, логические переменные, массивы и так далее)
111
* Многие языки программирования имеют функции и библиотеки для чтения и создания структур JSON.
112
113 1 Александр Александров
h3. Какие браузеры поддерживают JSON?
114
115 2 Александр Александров
Поддержка JSON включена в такие браузеры начиная с:
116
117
* Firefox (Mozilla) 3.5+
118
* Internet Explorer 8+
119
* Chrome
120
* Opera 10+
121
* Safari 4+
122
123 1 Александр Александров
h3. Какая функция используется для преобразования текста JSON в объект?
124
125 2 Александр Александров
Чтобы преобразовать текст JSON в объект используется функция "eval()".
126
127 1 Александр Александров
h3. Что такое JSON Parser?
128
129 2 Александр Александров
Вызов JSON.parse(str) превратит строку с данными в формате JSON в JavaScriptобъект/массив/значение, возможно с преобразованием получаемого в процессе разбора значения.
130
131 1 Александр Александров
h3. Что такое JSON-RPC?
132
133 2 Александр Александров
JSON-RPC(сокр. от англ. JavaScript Object Notation Remote Procedure Call - JSONвызов удалённых процедур) - протокол удалённого вызова процедур, использующий JSON для кодирования сообщений. Это очень простой протокол (очень похожий на XML-RPC), определяющий только несколько типов данных и команд. JSON-RPC поддерживает уведомления (информация, отправляемая на сервер, не требует ответа) и множественные вызовы.
134
135 1 Александр Александров
h3. Что такое JSON-RPC-Java?
136
137 2 Александр Александров
JSON-RPC-Java - ето реализация протокола JSON-RPC на Java.
138
139 1 Александр Александров
h3. Какова роль JSON.stringify?
140
141 2 Александр Александров
Метод JSON.stringify() преобразует объекты JavaScript в строку в формате JSON, возможно с заменой значений, если указана функция замены, или с включением только определённых свойств, если указан массив замены. Используется, когда нужно из JavaScript передать данные по сети.
142
143 1 Александр Александров
h3. Как создать JSON из массива PHP?
144
145 2 Александр Александров
Простой пример:
146
147
<pre><code class="php">
148
$array = array('name'=>'PHP'=>'Web technology');
149
echo json_encode($array);
150
</code></pre>
151
152 1 Александр Александров
h3. Как получить PHP массив из JSON объекта?
153
154 2 Александр Александров
Простой пример:
155
156
<pre><code class="php">
157
$array = '{"name": "John", "age}": 23}';
158
$array = json_decode($object);
159
</code></pre>
160
161 1 Александр Александров
h3. Как парсить JSON в JQuery?
162
163 2 Александр Александров
Для парсинга JSON в JQuery мы используем метод $.parseJSON() которий конвертирует строку с JSON-данными в javascript-объект. Простой пример:
164
165
<pre><code class="javascript">
166
var json = '{"name": "John", "age}": 23}';
167
var obj = $.parseJSON(json);
168
</code></pre>
169
170
171 1 Александр Александров
h3. Какая функция используется для кодирования JSON в PHP?
172
173 2 Александр Александров
Для кодирования JSON в PHP используется функция json_encode(). Возвращает JSON закодированную строку (string) в случае успеха и false в случае неудачи.
174
175
Замечание:
176
177
В случае ошибки кодирования, можно использовать json_last_error() для определения точной ошибки
178
179 1 Александр Александров
h3. Как парсить JSON в JavaScript?
180
181 2 Александр Александров
Простой пример:
182
183
<pre><code class="javascript">
184
var json = '{"name": "John", "age}": 23}';
185
var obj = $.parse(json);
186
</code></pre>
187
188 1 Александр Александров
h3. Как создать JSON объект из JavaScript?
189
190 2 Александр Александров
Простой пример:
191
192
{{dmsf_image(363)}}
193
194 1 Александр Александров
h3. Валидациия JSON в PHP?
195
196 2 Александр Александров
Простой пример:
197
198 1 Александр Александров
h3. Валидациия JSON в javascript?
199
200 2 Александр Александров
Простой пример:
201
202
{{dmsf_image(364)}}
203
204 1 Александр Александров
h3. Валидациия JSON в jQuery?
205
206 2 Александр Александров
Простой пример:
207
208
{{dmsf_image(365)}}
209
210 1 Александр Александров
h3. Как получить JSON ответ в Ajax?
211 2 Александр Александров
212
Простой пример:
213
214
{{dmsf_image(366)}}
Go to top