Учебники

JSON — Краткое руководство

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

Live Demo

<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. Синтаксис 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

Live Demo

<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. Это дает следующий результат —

Json Objects

Создание объектов Array

В следующем примере показано создание объекта массива в javascript с использованием JSON, сохраните приведенный ниже код как json_array_object.htm

Live Demo

<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 для определения структуры данных 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.

Live Demo

<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.