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)}} |