JSON - простой, основанный на использовании текста, способ хранить и передавать структурированные данные. С помощью простого синтаксиса вы можете легко хранить все, что угодно, начиная от одного числа до строк, массивов и объектов, в простом тексте. Также можно связывать между собой массивы и объекты, создавая сложные структуры данных.+
После создания строки JSON, ее легко отправить другому приложению или в другое место сети, так как она представляет собой простой текст.
JSON имеет следующие преимущества:
Он компактен.
Его предложения легко читаются и составляются как человеком, так и компьютером.
Его легко преобразовать в структуру данных для большинства языков программирования (числа, строки, логические переменные, массивы и так далее)
Многие языки программирования имеют функции и библиотеки для чтения и создания структур JSON.
Название JSON означает JavaScript Object Notation (представление объектов JavaScript). Как и представляет имя, он основан на способе определения объектов (очень похоже на создание ассоциативных массивов в других языках) и массивов.
Для чего используется JSON?
Наиболее частое распространенное использование JSON - пересылка данных от сервера к браузеру. Обычно данные JSON доставляются с помощью AJAX, который позволяет обмениваться данными браузеру и серверу без необходимости перезагружать страницу.
Пример:
Пользователь нажимает миниатюру продукта в онлайн магазине.
JavaScript, выполняющийся на браузере, генерирует запрос AJAX к скрипту PHP, запущенному на сервере, передавая ID выбранного продукта.
Скрипт PHP получает название продукта, описание, цену и другую информацию из базы данных. Затем составляет из данных строку JSON и отсылает ее браузеру.
JavaScript, выполняющийся на браузере, получает строку JSON, декодирует ее и выводит информацию о продукте на странице для пользователя.
Также можно использовать JSON для отправки данных от браузера на сервер, передавая строку JSON в качестве параметра запросов GET или POST. Но данный метод имеет меньшее распространение, так как передача данных через запросы AJAX может быть упрощена. Например, ID продукта может быть включен в адрес URL как часть запроса GET.
Как создать строку JSON?
Есть несколько основных правил для создания строки JSON:
Строка JSON содержит либо массив значений, либо объект (ассоциативный массив пар имя/значение).
Массив заключается в квадратные скобки ([ и ]) и содержит разделенный запятой список значений.
Объект заключается в фигурные скобки ({ и }) и содержит разделенный запятой список пар имя/значение.
Пара имя/значение состоит из имени поля, заключенного в двойные кавычки, за которым следует двоеточие (:) и значение поля.
Значение в массиве или объекте может быть:
Числом (целым или с плавающей точкой)
Строкой (в двойных кавычках)
Логическим значением (true или false)
Другим массивом (заключенным в квадратные скобки)
Другой объект (заключенный в фигурные скобки)
Значение null
Чтобы включить двойные кавычки в строку, нужно использовать обратную косую черту: \". Так же, как и во многих языках программирования, можно помещать управляющие символы и шестнадцатеричные коды в строку, предваряя их обратной косой чертой.
Простой пример строки JSON
Ниже приводится пример оформления заказа в формате JSON:
01
{
02
"orderID": 12345,
03
"shopperName": "Ваня Иванов",
04
"shopperEmail": "ivanov@example.com",
05
"contents": [
06
{
07
"productID": 34,
08
"productName": "Супер товар",
09
"quantity": 1
10
},
11
{
12
"productID": 56,
13
"productName": "Чудо товар",
14
"quantity": 3
15
}
16
],
17
"orderCompleted": true
18
}
Рассмотрим строку подробно:
Мы создаем объект с помощью фигурных скобок ({ и }).
В объекте есть несколько пар имя/значение:
"orderID": 12345
Свойство с именем "orderId" и целочисленным значением 12345
"shopperName": "Ваня Иванов"
свойство с именем "shopperName" и строковым значением "Ваня Иванов"
"shopperEmail": "johnsmith@example.com"
Свойство с именем "shopperEmail" и строковым значением "ivanov@example.com"
"contents": [ ... ]
Свойство с именем "contents", значение которого является массивом
"orderCompleted": true
Свойство с именем "orderCompleted" и логическим значением true
В массиве "contents" есть 2 объекта, представляющие отдельные позиции в заказе. Каждый объект содержит 3 свойства: productID, productName, и quantity.
Кстати, так как JSON основан на объявлении объектов JavaScript, то вы можете быстро и просто сделать выше приведенную строку JSON объектом JavaScript:
01
<script type="text/javascript">
02
varcart = {
03
"orderID": 12345,
04
"shopperName": "Ваня Иванов",
05
"shopperEmail": "ivanov@example.com",
06
"contents": [
07
{
08
"productID": 34,
09
"productName": "Супер товар",
10
"quantity": 1
11
},
12
{
13
"productID": 56,
14
"productName": "Чудо товар",
15
"quantity": 3
16
}
17
],
18
"orderCompleted": true
19
};
20
</script>
подробнее здесь - https://ruseller.com/lessons.php?id=1212&rub=27