JSON — Обзор
JSON или JavaScript Object Notation — это легкий текстовый открытый стандарт, разработанный для удобочитаемого обмена данными. Соглашения, используемые JSON, известны программистам, включая C, C ++, Java, Python, Perl и т. Д.
-
JSON означает JavaScript Object Notation.
-
Формат был указан Дугласом Крокфордом.
-
Он был разработан для удобочитаемого обмена данными.
-
Он был расширен с языка сценариев JavaScript.
-
Расширение имени файла .json .
-
Тип JSON Internet Media — это приложение / JSON.
-
Универсальный идентификатор типа — public.json.
JSON означает JavaScript Object Notation.
Формат был указан Дугласом Крокфордом.
Он был разработан для удобочитаемого обмена данными.
Он был расширен с языка сценариев JavaScript.
Расширение имени файла .json .
Тип JSON Internet Media — это приложение / JSON.
Универсальный идентификатор типа — public.json.
Использование JSON
-
Он используется при написании приложений на основе JavaScript, которые включают в себя расширения браузера и веб-сайты.
-
Формат JSON используется для сериализации и передачи структурированных данных по сетевому соединению.
-
Он в основном используется для передачи данных между сервером и веб-приложениями.
-
Веб-сервисы и API используют формат JSON для предоставления общедоступных данных.
-
Может использоваться с современными языками программирования.
Он используется при написании приложений на основе JavaScript, которые включают в себя расширения браузера и веб-сайты.
Формат JSON используется для сериализации и передачи структурированных данных по сетевому соединению.
Он в основном используется для передачи данных между сервером и веб-приложениями.
Веб-сервисы и API используют формат JSON для предоставления общедоступных данных.
Может использоваться с современными языками программирования.
Характеристики JSON
- JSON легко читать и писать.
- Это легкий текстовый формат обмена.
- JSON не зависит от языка.
Простой пример в JSON
В следующем примере показано, как использовать JSON для хранения информации, связанной с книгами, в зависимости от их темы и издания.
{ "book": [ { "id":"01", "language": "Java", "edition": "third", "author": "Herbert Schildt" }, { "id":"07", "language": "C++", "edition": "second", "author": "E.Balagurusamy" } ] }
После понимания вышеупомянутой программы мы попробуем другой пример. Давайте сохраним код ниже как json.htm —
<html> <head> <title>JSON example</title> <script language = "javascript" > var object1 = { "language" : "Java", "author" : "herbert schildt" }; document.write("<h1>JSON with JavaScript example</h1>"); document.write("<br>"); document.write("<h3>Language = " + object1.language+"</h3>"); document.write("<h3>Author = " + object1.author+"</h3>"); var object2 = { "language" : "C++", "author" : "E-Balagurusamy" }; document.write("<br>"); document.write("<h3>Language = " + object2.language+"</h3>"); document.write("<h3>Author = " + object2.author+"</h3>"); document.write("<hr />"); document.write(object2.language + " programming language can be studied " + "from book written by " + object2.author); document.write("<hr />"); </script> </head> <body> </body> </html>
Теперь давайте попробуем открыть json.htm с помощью IE или любого другого браузера с поддержкой javascript, который выдает следующий результат:
Вы можете обратиться к главе «Объекты JSON» для получения дополнительной информации об объектах JSON.
JSON — Синтаксис
Давайте кратко рассмотрим основной синтаксис JSON. Синтаксис JSON в основном рассматривается как подмножество синтаксиса JavaScript; это включает в себя следующее —
-
Данные представлены в парах имя / значение.
-
В фигурных скобках хранятся объекты, и за каждым именем следует ‘:’ (двоеточие), пары имя / значение разделяются (запятая).
-
Квадратные скобки содержат массивы, а значения разделяются, (запятая).
Данные представлены в парах имя / значение.
В фигурных скобках хранятся объекты, и за каждым именем следует ‘:’ (двоеточие), пары имя / значение разделяются (запятая).
Квадратные скобки содержат массивы, а значения разделяются, (запятая).
Ниже приведен простой пример —
{ "book": [ { "id": "01", "language": "Java", "edition": "third", "author": "Herbert Schildt" }, { "id": "07", "language": "C++", "edition": "second", "author": "E.Balagurusamy" } ] }
JSON поддерживает следующие две структуры данных —
-
Коллекция пар имя / значение — эта структура данных поддерживается различными языками программирования.
-
Упорядоченный список значений — включает массив, список, вектор или последовательность и т. Д.
Коллекция пар имя / значение — эта структура данных поддерживается различными языками программирования.
Упорядоченный список значений — включает массив, список, вектор или последовательность и т. Д.
JSON — DataTypes
Формат JSON поддерживает следующие типы данных —
Sr.No. | Тип и описание |
---|---|
1 |
Число формат с плавающей точкой двойной точности в JavaScript |
2 |
строка Unicode с двойными кавычками с обратной косой чертой |
3 |
логический правда или ложь |
4 |
массив упорядоченная последовательность значений |
5 |
Значение это может быть строка, число, истина или ложь, ноль и т. д. |
6 |
объект неупорядоченный набор пар ключ: значение |
7 |
Пробелы может использоваться между любой парой токенов |
8 |
ноль пустой |
Число
формат с плавающей точкой двойной точности в JavaScript
строка
Unicode с двойными кавычками с обратной косой чертой
логический
правда или ложь
массив
упорядоченная последовательность значений
Значение
это может быть строка, число, истина или ложь, ноль и т. д.
объект
неупорядоченный набор пар ключ: значение
Пробелы
может использоваться между любой парой токенов
ноль
пустой
Число
-
Это формат с плавающей точкой двойной точности в JavaScript, и он зависит от реализации.
-
Восьмеричные и шестнадцатеричные форматы не используются.
-
В числах не используется ни NaN, ни Infinity.
Это формат с плавающей точкой двойной точности в JavaScript, и он зависит от реализации.
Восьмеричные и шестнадцатеричные форматы не используются.
В числах не используется ни NaN, ни Infinity.
В следующей таблице приведены типы номеров —
Sr.No. | Тип и описание |
---|---|
1 |
целое число Цифры 1-9, 0 и положительный или отрицательный |
2 |
Доля Фракции как .3, .9 |
3 |
экспонент Экспонента, как е, е +, е-, Е, Е +, Е- |
целое число
Цифры 1-9, 0 и положительный или отрицательный
Доля
Фракции как .3, .9
экспонент
Экспонента, как е, е +, е-, Е, Е +, Е-
Синтаксис
var json-object-name = { string : number_value, .......}
пример
Пример, показывающий Number Datatype, значение не должно заключаться в кавычки —
var obj = {marks: 97}
строка
-
Это последовательность из нуля или более символов Unicode с двойными кавычками с обратной косой чертой.
-
Символ — это строка из одного символа, т.е. строка длиной 1.
Это последовательность из нуля или более символов Unicode с двойными кавычками с обратной косой чертой.
Символ — это строка из одного символа, т.е. строка длиной 1.
В таблице показаны различные специальные символы, которые можно использовать в строках документа JSON.
Sr.No. | Тип и описание |
---|---|
1 |
« двойная цитата |
2 |
\ обратный слэш |
3 |
/ косая черта |
4 |
б возврат на одну позицию |
5 |
е подача формы |
6 |
N новая линия |
7 |
р возврат каретки |
8 |
T горизонтальная вкладка |
9 |
U четыре шестнадцатеричные цифры |
«
двойная цитата
\
обратный слэш
/
косая черта
б
возврат на одну позицию
е
подача формы
N
новая линия
р
возврат каретки
T
горизонтальная вкладка
U
четыре шестнадцатеричные цифры
Синтаксис
var json-object-name = { string : "string value", .......}
пример
Пример, показывающий тип данных String —
var obj = {name: 'Amit'}
логический
Он включает в себя истинные или ложные значения.
Синтаксис
var json-object-name = { string : true/false, .......}
пример
var obj = {name: 'Amit', marks: 97, distinction: true}
массив
-
Это упорядоченная коллекция ценностей.
-
Они заключены в квадратные скобки, что означает, что массив начинается с. [. и заканчивается.] ..
-
Значения разделены, (запятая).
-
Индексирование массива можно начинать с 0 или 1.
-
Массивы следует использовать, когда имена ключей являются последовательными целыми числами.
Это упорядоченная коллекция ценностей.
Они заключены в квадратные скобки, что означает, что массив начинается с. [. и заканчивается.] ..
Значения разделены, (запятая).
Индексирование массива можно начинать с 0 или 1.
Массивы следует использовать, когда имена ключей являются последовательными целыми числами.
Синтаксис
[ value, .......]
пример
Пример, показывающий массив, содержащий несколько объектов —
{ "books": [ { "language":"Java" , "edition":"second" }, { "language":"C++" , "lastName":"fifth" }, { "language":"C" , "lastName":"third" } ] }
объект
-
Это неупорядоченный набор пар имя / значение.
-
Объекты заключены в фигурные скобки, то есть начинается с «{» и заканчивается «}».
-
За каждым именем следует ‘:’ (двоеточие), а пары ключ / значение разделяются (запятая).
-
Ключи должны быть строками и отличаться друг от друга.
-
Объекты следует использовать, когда имена ключей являются произвольными строками.
Это неупорядоченный набор пар имя / значение.
Объекты заключены в фигурные скобки, то есть начинается с «{» и заканчивается «}».
За каждым именем следует ‘:’ (двоеточие), а пары ключ / значение разделяются (запятая).
Ключи должны быть строками и отличаться друг от друга.
Объекты следует использовать, когда имена ключей являются произвольными строками.
Синтаксис
{ string : value, .......}
пример
Пример показа объекта —
{ "id": "011A", "language": "JAVA", "price": 500, }
Пробелы
Его можно вставить между любой парой токенов. Его можно добавить, чтобы сделать код более читабельным. Пример показывает объявление с и без пробелов —
Синтаксис
{string:" ",....}
пример
var obj1 = {"name": "Sachin Tendulkar"} var obj2 = {"name": "SauravGanguly"}
ноль
Это означает пустой тип.
Синтаксис
null
пример
var i = null; if(i == 1) { document.write("<h1>value is 1</h1>"); } else { document.write("<h1>value is null</h1>"); }
Значение JSON
Включает в себя —
- число (целое число или число с плавающей запятой)
- строка
- логический
- массив
- объект
- ноль
Синтаксис
String | Number | Object | Array | TRUE | FALSE | NULL
пример
var i = 1; var j = "sachin"; var k = null;
JSON — Объекты
Создание простых объектов
Объекты JSON могут быть созданы с помощью JavaScript. Давайте рассмотрим различные способы создания объектов JSON с использованием JavaScript —
- Создание пустого объекта —
var JSONObj = {};
- Создание нового Объекта —
var JSONObj = new Object();
-
Создание объекта с атрибутом bookname со значением в строке, атрибутом price с числовым значением. Доступ к атрибуту осуществляется с помощью «.» Оператор —
Создание объекта с атрибутом bookname со значением в строке, атрибутом price с числовым значением. Доступ к атрибуту осуществляется с помощью «.» Оператор —
var JSONObj = { "bookname ":"VB BLACK BOOK", "price":500 };
Это пример, который показывает создание объекта в javascript с использованием JSON, сохраните приведенный ниже код как json_object.htm —
<html> <head> <title>Creating Object JSON with JavaScript</title> <script language = "javascript" > var JSONObj = { "name" : "tutorialspoint.com", "year" : 2005 }; document.write("<h1>JSON with JavaScript example</h1>"); document.write("<br>"); document.write("<h3>Website Name = "+JSONObj.name+"</h3>"); document.write("<h3>Year = "+JSONObj.year+"</h3>"); </script> </head> <body> </body> </html>
Теперь давайте попробуем открыть Json Object с помощью IE или любого другого браузера с поддержкой javaScript. Это дает следующий результат —
Создание объектов Array
В следующем примере показано создание объекта массива в javascript с использованием JSON, сохраните приведенный ниже код как json_array_object.htm —
<html> <head> <title>Creation of array object in javascript using JSON</title> <script language = "javascript" > document.writeln("<h2>JSON array object</h2>"); var books = { "Pascal" : [ { "Name" : "Pascal Made Simple", "price" : 700 }, { "Name" : "Guide to Pascal", "price" : 400 }], "Scala" : [ { "Name" : "Scala for the Impatient", "price" : 1000 }, { "Name" : "Scala in Depth", "price" : 1300 }] } var i = 0 document.writeln("<table border = '2'><tr>"); for(i = 0;i<books.Pascal.length;i++) { document.writeln("<td>"); document.writeln("<table border = '1' width = 100 >"); document.writeln("<tr><td><b>Name</b></td><td width = 50>" + books.Pascal[i].Name+"</td></tr>"); document.writeln("<tr><td><b>Price</b></td><td width = 50>" + books.Pascal[i].price +"</td></tr>"); document.writeln("</table>"); document.writeln("</td>"); } for(i = 0;i<books.Scala.length;i++) { document.writeln("<td>"); document.writeln("<table border = '1' width = 100 >"); document.writeln("<tr><td><b>Name</b></td><td width = 50>" + books.Scala[i].Name+"</td></tr>"); document.writeln("<tr><td><b>Price</b></td><td width = 50>" + books.Scala[i].price+"</td></tr>"); document.writeln("</table>"); document.writeln("</td>"); } document.writeln("</tr></table>"); </script> </head> <body> </body> </html>
Теперь давайте попробуем открыть Json Array Object с помощью IE или любого другого браузера с поддержкой javaScript. Это дает следующий результат —
JSON — схема
Схема JSON — это спецификация формата на основе JSON для определения структуры данных JSON. Он был написан по проекту IETF, срок действия которого истек в 2011 году. Схема JSON —
- Описывает ваш существующий формат данных.
- Четкая, понятная человеку и машиночитаемая документация.
- Полная структурная проверка, полезная для автоматического тестирования.
- Полная структурная проверка, проверка данных, предоставленных клиентом.
Библиотеки валидации схемы JSON
В настоящее время доступно несколько валидаторов для разных языков программирования. В настоящее время наиболее полным и совместимым валидатором JSON Schema является JSV.
Языки | Библиотеки |
---|---|
С | WJElement (LGPLv3) |
Джава | JSON-схема-валидатор (LGPLv3) |
.СЕТЬ | Json.NET (MIT) |
ActionScript 3 | Фригга (MIT) |
Haskell | Эзон-схема (MIT) |
питон | Jsonschema |
Рубин | автоматический анализ (ASL 2.0); Руби-Джонсхема (MIT) |
PHP | php-json-схема (MIT). JSON-схема (Беркли) |
JavaScript | Упорядоченный (BSD); JSV; JSON-схема; Matic (MIT); Dojo; Persevere (модифицированный BSD или AFL 2.0); schema.js. |
Пример схемы JSON
Ниже приведена базовая схема JSON, которая охватывает классическое описание каталога продукции —
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Product", "description": "A product from Acme's catalog", "type": "object", "properties": { "id": { "description": "The unique identifier for a product", "type": "integer" }, "name": { "description": "Name of the product", "type": "string" }, "price": { "type": "number", "minimum": 0, "exclusiveMinimum": true } }, "required": ["id", "name", "price"] }
Давайте проверим различные важные ключевые слова, которые можно использовать в этой схеме —
Sr.No. | Ключевое слово и описание |
---|---|
1 |
$ схема Ключевое слово $ schema утверждает, что эта схема написана согласно черновой спецификации v4. |
2 |
заглавие Вы будете использовать это, чтобы дать название вашей схеме. |
3 |
описание Небольшое описание схемы. |
4 |
тип Ключевое слово type определяет первое ограничение для наших данных JSON: это должен быть объект JSON. |
5 |
свойства Определяет различные ключи и их типы значений, минимальные и максимальные значения, которые будут использоваться в файле JSON. |
6 |
требуется Это сохраняет список необходимых свойств. |
7 |
минимальный Это ограничение, накладываемое на значение, и представляет минимально допустимое значение. |
8 |
exclusiveMinimum Если присутствует «exclusiveMinimum» и имеет логическое значение true, экземпляр действителен, если он строго больше значения «минимума». |
9 |
максимальная Это ограничение, которое будет наложено на значение и представляет собой максимально допустимое значение. |
10 |
exclusiveMaximum Если присутствует «exclusiveMaximum» и имеет логическое значение true, экземпляр действителен, если он строго ниже значения «Maximum». |
11 |
multipleOf Числовой экземпляр действителен для «множественного значения», если результатом деления экземпляра по значению этого ключевого слова является целое число. |
12 |
максимальная длина Длина экземпляра строки определяется как максимальное количество ее символов. |
13 |
MINLENGTH Длина экземпляра строки определяется как минимальное количество ее символов. |
14 |
шаблон Экземпляр строки считается допустимым, если регулярное выражение соответствует экземпляру успешно. |
$ схема
Ключевое слово $ schema утверждает, что эта схема написана согласно черновой спецификации v4.
заглавие
Вы будете использовать это, чтобы дать название вашей схеме.
описание
Небольшое описание схемы.
тип
Ключевое слово type определяет первое ограничение для наших данных JSON: это должен быть объект JSON.
свойства
Определяет различные ключи и их типы значений, минимальные и максимальные значения, которые будут использоваться в файле JSON.
требуется
Это сохраняет список необходимых свойств.
минимальный
Это ограничение, накладываемое на значение, и представляет минимально допустимое значение.
exclusiveMinimum
Если присутствует «exclusiveMinimum» и имеет логическое значение true, экземпляр действителен, если он строго больше значения «минимума».
максимальная
Это ограничение, которое будет наложено на значение и представляет собой максимально допустимое значение.
exclusiveMaximum
Если присутствует «exclusiveMaximum» и имеет логическое значение true, экземпляр действителен, если он строго ниже значения «Maximum».
multipleOf
Числовой экземпляр действителен для «множественного значения», если результатом деления экземпляра по значению этого ключевого слова является целое число.
максимальная длина
Длина экземпляра строки определяется как максимальное количество ее символов.
MINLENGTH
Длина экземпляра строки определяется как минимальное количество ее символов.
шаблон
Экземпляр строки считается допустимым, если регулярное выражение соответствует экземпляру успешно.
Вы можете проверить http://json-schema.org для полного списка ключевых слов, которые можно использовать при определении схемы JSON. Приведенную выше схему можно использовать для проверки правильности следующего кода JSON:
[ { "id": 2, "name": "An ice sculpture", "price": 12.50, }, { "id": 3, "name": "A blue mouse", "price": 25.50, } ]
JSON — Сравнение с XML
JSON и XML являются удобочитаемыми форматами и не зависят от языка. Они оба поддерживают создание, чтение и декодирование в реальных ситуациях. Мы можем сравнить JSON с XML, основываясь на следующих факторах:
Подробный
XML более многословен, чем JSON, поэтому быстрее писать JSON для программистов.
Использование массивов
XML используется для описания структурированных данных, которые не включают в себя массивы, тогда как JSON включают массивы.
анализ
Eval метод JavaScript анализирует JSON. При применении к JSON eval возвращает описанный объект.
пример
Отдельные примеры XML и JSON —
JSON
{ "company": Volkswagen, "name": "Vento", "price": 800000 }
XML
<car> <company>Volkswagen</company> <name>Vento</name> <price>800000</price> </car>
JSON с PHP
В этой главе рассказывается, как кодировать и декодировать объекты JSON с использованием языка программирования PHP. Давайте начнем с подготовки среды для начала нашего программирования с PHP для JSON.
Среда
Начиная с PHP 5.2.0, расширение JSON связывается и компилируется в PHP по умолчанию.
Функции JSON
функция | Библиотеки |
---|---|
json_encode | Возвращает JSON-представление значения. |
json_decode | Декодирует строку JSON. |
json_last_error | Возвращает последнюю произошедшую ошибку. |
Кодировка JSON в PHP (json_encode)
Функция PHP json_encode () используется для кодирования JSON в PHP. Эта функция возвращает JSON-представление значения в случае успеха или FALSE в случае ошибки.
Синтаксис
string json_encode ( $value [, $options = 0 ] )
параметры
-
значение — значение, которое кодируется. Эта функция работает только с данными в кодировке UTF-8.
-
options — это необязательное значение — битовая маска, состоящая из JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT.
значение — значение, которое кодируется. Эта функция работает только с данными в кодировке UTF-8.
options — это необязательное значение — битовая маска, состоящая из JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT.
пример
В следующем примере показано, как преобразовать массив в JSON с помощью PHP —
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?>
При выполнении это даст следующий результат —
{"a":1,"b":2,"c":3,"d":4,"e":5}
В следующем примере показано, как объекты PHP могут быть преобразованы в JSON —
<?php class Emp { public $name = ""; public $hobbies = ""; public $birthdate = ""; } $e = new Emp(); $e->name = "sachin"; $e->hobbies = "sports"; $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p"); $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03")); echo json_encode($e); ?>
При выполнении это даст следующий результат —
{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}
Расшифровка JSON в PHP (json_decode)
Функция PHP json_decode () используется для декодирования JSON в PHP. Эта функция возвращает значение, декодированное из json, в соответствующий тип PHP.
Синтаксис
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
Paramaters
-
json_string — это закодированная строка, которая должна быть в кодировке UTF-8.
-
assoc — это параметр булева типа, при значении TRUE возвращаемые объекты будут преобразованы в ассоциативные массивы.
-
глубина — это параметр целочисленного типа, который определяет глубину рекурсии
-
options — это битовая маска целочисленного типа для декодирования JSON, поддерживается JSON_BIGINT_AS_STRING.
json_string — это закодированная строка, которая должна быть в кодировке UTF-8.
assoc — это параметр булева типа, при значении TRUE возвращаемые объекты будут преобразованы в ассоциативные массивы.
глубина — это параметр целочисленного типа, который определяет глубину рекурсии
options — это битовая маска целочисленного типа для декодирования JSON, поддерживается JSON_BIGINT_AS_STRING.
пример
В следующем примере показано, как PHP можно использовать для декодирования объектов JSON:
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>
При выполнении он даст следующий результат —
object(stdClass)#1 (5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) } array(5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) }
JSON с Perl
В этой главе рассказывается, как кодировать и декодировать объекты JSON с использованием языка программирования Perl. Давайте начнем с подготовки среды для начала нашего программирования на Perl для JSON.
Среда
Перед тем, как начать кодирование и декодирование JSON с использованием Perl, необходимо установить модуль JSON, который можно получить из CPAN. После того, как вы загрузили JSON-2.53.tar.gz или любую другую последнюю версию, выполните шаги, указанные ниже —
$tar xvfz JSON-2.53.tar.gz $cd JSON-2.53 $perl Makefile.PL $make $make install
Функции JSON
функция | Библиотеки |
---|---|
encode_json | Преобразует данную структуру данных Perl в двоичную строку в кодировке UTF-8. |
decode_json | Декодирует строку JSON. |
to_json | Преобразует данную структуру данных Perl в строку json. |
from_json | Ожидает строку json и пытается ее проанализировать, возвращая полученную ссылку. |
convert_blessed | Используйте эту функцию с истинным значением, чтобы Perl мог использовать метод TO_JSON в классе объекта для преобразования объекта в JSON. |
Кодировка JSON в Perl (encode_json)
Функция Perl encode_json () преобразует данную структуру данных Perl в двоичную строку в кодировке UTF-8.
Синтаксис
$json_text = encode_json ($perl_scalar ); or $json_text = JSON->new->utf8->encode($perl_scalar);
пример
В следующем примере показаны массивы под JSON с Perl —
#!/usr/bin/perl use JSON; my %rec_hash = ('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); my $json = encode_json \%rec_hash; print "$json\n";
При выполнении это даст следующий результат —
{"e":5,"c":3,"a":1,"b":2,"d":4}
В следующем примере показано, как объекты Perl могут быть преобразованы в JSON —
#!/usr/bin/perl package Emp; sub new { my $class = shift; my $self = { name => shift, hobbies => shift, birthdate => shift, }; bless $self, $class; return $self; } sub TO_JSON { return { %{ shift() } }; } package main; use JSON; my $JSON = JSON->new->utf8; $JSON->convert_blessed(1); $e = new Emp( "sachin", "sports", "8/5/1974 12:20:03 pm"); $json = $JSON->encode($e); print "$json\n";
При выполнении он даст следующий результат —
{"birthdate":"8/5/1974 12:20:03 pm","name":"sachin","hobbies":"sports"}
Декодирование JSON в Perl (decode_json)
Функция Perl decode_json () используется для декодирования JSON в Perl. Эта функция возвращает значение, декодированное из json, в соответствующий тип Perl.
Синтаксис
$perl_scalar = decode_json $json_text or $perl_scalar = JSON->new->utf8->decode($json_text)
пример
В следующем примере показано, как Perl можно использовать для декодирования объектов JSON. Здесь вам нужно будет установить модуль Data :: Dumper, если у вас его еще нет на вашем компьютере.
#!/usr/bin/perl use JSON; use Data::Dumper; $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; $text = decode_json($json); print Dumper($text);
При выполнении он выдаст следующий результат —
$VAR1 = { 'e' => 5, 'c' => 3, 'a' => 1, 'b' => 2, 'd' => 4 };
JSON с Python
В этой главе рассказывается, как кодировать и декодировать объекты JSON с использованием языка программирования Python. Давайте начнем с подготовки среды для запуска нашего программирования с Python для JSON.
Среда
Прежде чем вы начнете с кодирования и декодирования JSON с использованием Python, вам необходимо установить любой из доступных модулей JSON. Для этого урока мы скачали и установили Demjson следующим образом:
$tar xvfz demjson-1.6.tar.gz $cd demjson-1.6 $python setup.py install
Функции JSON
функция | Библиотеки |
---|---|
шифровать | Кодирует объект Python в строковое представление JSON. |
раскодировать | Декодирует строку в кодировке JSON в объект Python. |
Кодировка JSON в Python (кодировать)
Функция Python encode () кодирует объект Python в строковое представление JSON.
Синтаксис
demjson.encode(self, obj, nest_level=0)
пример
В следующем примере показаны массивы под JSON с Python.
#!/usr/bin/python import demjson data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ] json = demjson.encode(data) print json
При выполнении это даст следующий результат —
[{"a":1,"b":2,"c":3,"d":4,"e":5}]
Декодирование JSON в Python (декодирование)
Python может использовать функцию demjson.decode () для декодирования JSON. Эта функция возвращает значение, декодированное из json, в соответствующий тип Python.
Синтаксис
demjson.decode(self, txt)
пример
В следующем примере показано, как Python можно использовать для декодирования объектов JSON.
#!/usr/bin/python import demjson json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; text = demjson.decode(json) print text
При выполнении он даст следующий результат —
{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
JSON с Руби
В этой главе рассказывается, как кодировать и декодировать объекты JSON с использованием языка программирования Ruby. Давайте начнем с подготовки среды для начала нашего программирования с Ruby для JSON.
Среда
Прежде чем начать кодирование и декодирование JSON с использованием Ruby, необходимо установить любой из модулей JSON, доступных для Ruby. Возможно, вам потребуется установить Ruby gem, но если вы используете последнюю версию Ruby, значит, на вашем компьютере уже должен быть установлен gem, в противном случае давайте выполним следующий шаг, предполагая, что у вас уже установлен gem —
$gem install json
Разбор JSON с использованием Ruby
В следующем примере показано, что первые 2 клавиши содержат строковые значения, а последние 3 клавиши содержат массивы строк. Давайте сохраним следующий контент в файле с именем input.json .
{ "President": "Alan Isaac", "CEO": "David Richardson", "India": [ "Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir" ], "Srilanka": [ "Lasith Malinga", "Angelo Mathews", "Kumar Sangakkara" ], "England": [ "Alastair Cook", "Jonathan Trott", "Kevin Pietersen" ] }
Ниже приведена программа Ruby, которая будет использоваться для анализа вышеупомянутого документа JSON:
#!/usr/bin/ruby require 'rubygems' require 'json' require 'pp' json = File.read('input.json') obj = JSON.parse(json) pp obj
При выполнении он даст следующий результат —
{ "President"=>"Alan Isaac", "CEO"=>"David Richardson", "India"=> ["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"], "Srilanka"=> ["Lasith Malinga ", "Angelo Mathews", "Kumar Sangakkara"], "England"=> ["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"] }
JSON с Java
В этой главе рассказывается, как кодировать и декодировать объекты JSON с использованием языка программирования Java. Давайте начнем с подготовки среды для начала нашего программирования с Java для JSON.
Среда
Прежде чем начать с кодирования и декодирования JSON с использованием Java, необходимо установить любой из доступных модулей JSON. Для этого урока мы скачали и установили JSON.simple и добавили расположение файла json-simple-1.1.1.jar в переменную среды CLASSPATH.
Сопоставление между сущностями JSON и Java
JSON.simple отображает объекты с левой стороны на правую сторону при декодировании или синтаксическом анализе, и отображает объекты справа налево при кодировании.
JSON | Джава |
---|---|
строка | java.lang.String |
число | java.lang.Number |
правда | ложь | java.lang.Boolean |
ноль | ноль |
массив | java.util.List |
объект | java.util.Map |
При декодировании конкретный класс java.util.List по умолчанию — org.json.simple.JSONArray, а конкретный класс java.util.Map по умолчанию — org.json.simple.JSONObject .
Кодировка JSON в Java
Ниже приведен простой пример кодирования объекта JSON с использованием Java JSONObject, который является подклассом java.util.HashMap. Заказ не предоставляется. Если вам нужен строгий порядок элементов, используйте метод JSONValue.toJSONString (map) с реализацией упорядоченной карты, такой как java.util.LinkedHashMap.
import org.json.simple.JSONObject; class JsonEncodeDemo { public static void main(String[] args) { JSONObject obj = new JSONObject(); obj.put("name", "foo"); obj.put("num", new Integer(100)); obj.put("balance", new Double(1000.21)); obj.put("is_vip", new Boolean(true)); System.out.print(obj); } }
При компиляции и выполнении вышеуказанной программы будет получен следующий результат:
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
Ниже приведен еще один пример, демонстрирующий потоковую передачу объекта JSON с использованием Java JSONObject.
import org.json.simple.JSONObject; class JsonEncodeDemo { public static void main(String[] args) { JSONObject obj = new JSONObject(); obj.put("name","foo"); obj.put("num",new Integer(100)); obj.put("balance",new Double(1000.21)); obj.put("is_vip",new Boolean(true)); StringWriter out = new StringWriter(); obj.writeJSONString(out); String jsonText = out.toString(); System.out.print(jsonText); } }
При компиляции и выполнении вышеуказанной программы генерируется следующий результат:
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
Расшифровка JSON в Java
В следующем примере используются JSONObject и JSONArray, где JSONObject — это java.util.Map, а JSONArray — это java.util.List, поэтому вы можете получить к ним доступ с помощью стандартных операций Map или List.
import org.json.simple.JSONObject; import org.json.simple.JSONArray; import org.json.simple.parser.ParseException; import org.json.simple.parser.JSONParser; class JsonDecodeDemo { public static void main(String[] args) { JSONParser parser = new JSONParser(); String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]"; try{ Object obj = parser.parse(s); JSONArray array = (JSONArray)obj; System.out.println("The 2nd element of array"); System.out.println(array.get(1)); System.out.println(); JSONObject obj2 = (JSONObject)array.get(1); System.out.println("Field \"1\""); System.out.println(obj2.get("1")); s = "{}"; obj = parser.parse(s); System.out.println(obj); s = "[5,]"; obj = parser.parse(s); System.out.println(obj); s = "[5,,2]"; obj = parser.parse(s); System.out.println(obj); }catch(ParseException pe) { System.out.println("position: " + pe.getPosition()); System.out.println(pe); } } }
При компиляции и выполнении вышеуказанной программы будет получен следующий результат:
The 2nd element of array {"1":{"2":{"3":{"4":[5,{"6":7}]}}}} Field "1" {"2":{"3":{"4":[5,{"6":7}]}}} {} [5] [5,2]
JSON с Ajax
AJAX — это асинхронный JavaScript и XML, который используется на стороне клиента как группа взаимосвязанных методов веб-разработки для создания асинхронных веб-приложений. Согласно модели AJAX, веб-приложения могут отправлять и извлекать данные с сервера асинхронно, не влияя на отображение и поведение существующей страницы.
Многие разработчики используют JSON для передачи обновлений AJAX между клиентом и сервером. В качестве примера AJAX можно рассматривать сайты, обновляющие результаты спортивных матчей. Если эти оценки должны быть обновлены на веб-сайте, они должны храниться на сервере, чтобы веб-страница могла получать оценки, когда это необходимо. Здесь мы можем использовать данные в формате JSON.
Любые данные, которые обновляются с использованием AJAX, могут храниться в формате JSON на веб-сервере. AJAX используется для того, чтобы javascript мог при необходимости извлекать эти файлы JSON, анализировать их и выполнять одну из следующих операций:
-
Сохраните проанализированные значения в переменных для дальнейшей обработки, прежде чем отображать их на веб-странице.
-
Он напрямую назначает данные элементам DOM на веб-странице, чтобы они отображались на веб-сайте.
Сохраните проанализированные значения в переменных для дальнейшей обработки, прежде чем отображать их на веб-странице.
Он напрямую назначает данные элементам DOM на веб-странице, чтобы они отображались на веб-сайте.
пример
Следующий код показывает JSON с AJAX. Сохраните его как файл ajax.htm . Здесь функция загрузки loadJSON () используется асинхронно для загрузки данных JSON.
<html> <head> <meta content = "text/html; charset = ISO-8859-1" http-equiv = "content-type"> <script type = "application/javascript"> function loadJSON() { var data_file = "http://www.tutorialspoint.com/json/data.json"; var http_request = new XMLHttpRequest(); try{ // Opera 8.0+, Firefox, Chrome, Safari http_request = new XMLHttpRequest(); }catch (e) { // Internet Explorer Browsers try{ http_request = new ActiveXObject("Msxml2.XMLHTTP"); }catch (e) { try{ http_request = new ActiveXObject("Microsoft.XMLHTTP"); }catch (e) { // Something went wrong alert("Your browser broke!"); return false; } } } http_request.onreadystatechange = function() { if (http_request.readyState == 4 ) { // Javascript function JSON.parse to parse JSON data var jsonObj = JSON.parse(http_request.responseText); // jsonObj variable now contains the data structure and can // be accessed as jsonObj.name and jsonObj.country. document.getElementById("Name").innerHTML = jsonObj.name; document.getElementById("Country").innerHTML = jsonObj.country; } } http_request.open("GET", data_file, true); http_request.send(); } </script> <title>tutorialspoint.com JSON</title> </head> <body> <h1>Cricketer Details</h1> <table class = "src"> <tr><th>Name</th><th>Country</th></tr> <tr><td><div id = "Name">Sachin</div></td> <td><div id = "Country">India</div></td></tr> </table> <div class = "central"> <button type = "button" onclick = "loadJSON()">Update Details </button> </div> </body> </html>
Ниже приведен входной файл data.json , содержащий данные в формате JSON, которые будут загружаться асинхронно при нажатии кнопки « Обновить данные» . Этот файл хранится в http://www.tutorialspoint.com/json/
{"name": "Brett", "country": "Australia"}
Приведенный выше HTML-код создаст следующий экран, где вы можете проверить AJAX в действии:
Крикет Детали
название | Страна |
---|---|
Сэчин
|
Индия
|
Когда вы нажимаете кнопку « Обновить детали» , вы должны получить результат примерно следующим образом. Вы можете попробовать JSON с AJAX самостоятельно, если ваш браузер поддерживает Javascript.