JSON
- Homepage: JSON
JSON (JavaScript Object Notation) — простой формат обмена данными, основан на JavaScript. Представляет собой собой популярную альтернативу использованию xml для предоставления данных в Принципы построения AJAX JS. Стандарт JSON описан в RFC 4627 application/json.
JSON является подмножеством языка Что такое YAML. Спецификация YAML 1.2 указывает, что любой файл в формате JSON является корректным файлом в формате YAML.
Пример данных в форматах xml и JSON:
<! Формат XML > <author> <name>Wendell Berry</name> <books> <book>The Unsettling of America</book> <book>What are People For?</book> </books> </author> // Формат JSON { "name": "Wendell Berry", "books": [ "The Unsettling of America", "What are People For?" ] }
Синтаксис
Стандарт RFC 4627 предписывает кодировать JSON только в Unicode. Кодировкой по умолчанию является UTF-8 и допускаются еще UTF-16 и UTF-32 в разновидности BE и LE (порядок следования байт). Тип кодировки должен определяться парсером автоматически на основе первых 4 байт (глава 3 стандарта).
JSON - текстовый формат, полностью независимый от языка реализации, но он использует соглашения, знакомые программистам C- подобных языков, таких как C, C++, C#, Как установить Java на Ubuntu, JavaScript, perl, Синтаксис Python и многих других.
JSON строится на двух универсальных структурах данных:
- Набор пар ключ/значение. В других языках аналогами являются объект, запись, структура, словарь, хэш- таблица, ассоциативный массив.
- Пронумерованный набор значений. В других языках аналогами являются массив, вектор, список, последовательность.
Формы структур:
- Объект - это неупорядоченное множество пар имя/значение, заключённое в фигурные скобки { }. Между именем и значением стоит символ «:», а пары имя/значение разделяются запятыми.
- Массив (одномерный) - это множество значений, имеющих порядковые номера (индексы). Массив заключается в квадратные скобки [ ]. Значения отделяются запятыми.
- Значение - это строка в двойных кавычках, число (только десятичный формат), значение true или false, объект, массив или значение null.
- Строка — это упорядоченное множество из нуля или более символов Unicode, заключенное в двойные кавычки, с использованием Escape-последовательности- последовательностей экранированных символом \ (backslash). Символы представляются простой строкой.
Функции PHP для работы с JSON
Если мы хотим получить массив в JSON формате, нам нужно только использовать встроенные готовые PHP функции:
- json_encode()
- json_decode() - Декодирует строку JSON.
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>
JSONP и JSONPP
JSONP (аJSON Padding — «JSON с подкладкой») является расширением JSON, когда имя функции обратного вызова указывается в качестве входного аргумента.
В основу технологии положен тот факт, что политика безопасности браузера не запрещает использовать тег
<script type="text/javascript" src="…"></script>
для обращения к серверам, отличным от сервера, с которого произошла загрузка страницы.
Без использования технологии JSONP (то есть используя просто JSON кодирование данных) сервер может вернуть только данные. Например, так:
{"paper": "A4", "count": 5}
Однако это только данные, и они не могут влиять на браузер.
Используя технику JSONP, стороннему серверу передаётся в строке вызова (GET) имя callback функции:
<script type="text/javascript" src="http://example.com/getjson?jsonp=parseResponse"></script>
Здесь параметр jsonp содержит имя callback функции parseResponse.
Теперь посторонний сервер example.com может вернуть следующий код:
parseResponse({"paper": "A4", "count": 5})
Теперь код вызывает javascript-функцию первого домена.
Первоначально идея была предложена в блоге MacPython в 2005 году[25] и в настоящее время используется многими Web 2.0 приложениями, такими, как Dojo Toolkit Applications, Google Toolkit Applications и zanox Web Services. Дальнейшие расширения этого протокола были предложены с учётом ввода дополнительных аргументов, как, например, в случае JSONPP] при поддержке S3DB веб-сервисов.
Поскольку JSONP использует скрипт теги, вызовы по сути открыты миру. По этой причине JSONP может быть неуместными для хранения конфиденциальных данных.
Ссылки
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!
7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах