JSON - szybki przewodnik

JSON lub JavaScript Object Notation to lekki, oparty na tekście, otwarty standard przeznaczony do wymiany danych czytelnych dla człowieka. Konwencje używane przez JSON są znane programistom, do których należą C, C ++, Java, Python, Perl itp.

  • JSON to skrót od JavaScript Object Notation.

  • Format został określony przez Douglasa Crockforda.

  • Został zaprojektowany do wymiany danych czytelnych dla człowieka.

  • Został rozszerzony z języka skryptowego JavaScript.

  • Rozszerzenie nazwy pliku to .json.

  • Typ JSON Internet Media to application/json.

  • Jednolity identyfikator typu to public.json.

Zastosowania JSON

  • Jest używany podczas pisania aplikacji opartych na JavaScript, które obejmują rozszerzenia przeglądarki i strony internetowe.

  • Format JSON jest używany do serializacji i przesyłania ustrukturyzowanych danych przez połączenie sieciowe.

  • Służy głównie do przesyłania danych między serwerem a aplikacjami internetowymi.

  • Usługi internetowe i interfejsy API używają formatu JSON do udostępniania danych publicznych.

  • Może być używany z nowoczesnymi językami programowania.

Charakterystyka JSON

  • JSON jest łatwy do czytania i pisania.
  • Jest to lekki format wymiany oparty na tekście.
  • JSON jest niezależny od języka.

Prosty przykład w JSON

Poniższy przykład pokazuje, jak używać formatu JSON do przechowywania informacji związanych z książkami na podstawie ich tematu i wydania.

{
   "book": [
	
      {
         "id":"01",
         "language": "Java",
         "edition": "third",
         "author": "Herbert Schildt"
      },
	
      {
         "id":"07",
         "language": "C++",
         "edition": "second",
         "author": "E.Balagurusamy"
      }
   ]
}

Po zrozumieniu powyższego programu spróbujemy innego przykładu. Zapiszmy poniższy kod jakojson.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>

Teraz spróbujmy otworzyć json.htm za pomocą IE lub innej przeglądarki obsługującej JavaScript, która daje następujący wynik -

Więcej informacji na temat obiektów JSON można znaleźć w rozdziale Obiekty JSON.

Rzućmy okiem na podstawową składnię JSON. Składnia JSON jest zasadniczo traktowana jako podzbiór składni JavaScript; zawiera:

  • Dane są przedstawiane w parach nazwa / wartość.

  • Nawiasy klamrowe przechowują obiekty, a po każdej nazwie występuje znak „:” (dwukropek), a pary nazwa / wartość są oddzielane (przecinek).

  • Nawiasy kwadratowe przechowują tablice, a wartości są oddzielane (przecinek).

Poniżej znajduje się prosty przykład -

{
   "book": [

      {
         "id": "01",
         "language": "Java",
         "edition": "third",
         "author": "Herbert Schildt"
      },

      {
         "id": "07",
         "language": "C++",
         "edition": "second",
         "author": "E.Balagurusamy"
      }

   ]
}

JSON obsługuje następujące dwie struktury danych -

  • Collection of name/value pairs - Ta struktura danych jest obsługiwana przez różne języki programowania.

  • Ordered list of values - Obejmuje tablicę, listę, wektor lub sekwencję itp.

Format JSON obsługuje następujące typy danych -

Sr.No. Typ i opis
1

Number

format zmiennoprzecinkowy podwójnej precyzji w JavaScript

2

String

znak Unicode w podwójnym cudzysłowie ze znakami ucieczki odwrotnym ukośnikiem

3

Boolean

prawda czy fałsz

4

Array

uporządkowana sekwencja wartości

5

Value

może to być ciąg znaków, liczba, prawda lub fałsz, null itp

6

Object

nieuporządkowana kolekcja par klucz: wartość

7

Whitespace

może być używany między dowolną parą tokenów

8

null

pusty

Numer

  • Jest to format zmiennoprzecinkowy podwójnej precyzji w JavaScript i zależy od implementacji.

  • Formaty ósemkowe i szesnastkowe nie są używane.

  • W Number nie używa się NaN ani Infinity.

W poniższej tabeli przedstawiono typy liczb -

Sr.No. Typ i opis
1

Integer

Cyfry 1–9, 0 i dodatnie lub ujemne

2

Fraction

Ułamki takie jak .3, .9

3

Exponent

Wykładnik taki jak e, e +, e-, E, E +, E-

Składnia

var json-object-name = { string : number_value, .......}

Przykład

Przykład pokazujący typ danych liczbowych, wartości nie należy podawać -

var obj = {marks: 97}

Strunowy

  • Jest to sekwencja zera lub więcej znaków Unicode w podwójnych cudzysłowach z ucieczką z ukośnika odwrotnego.

  • Znak to pojedynczy ciąg znaków, czyli ciąg o długości 1.

W tabeli przedstawiono różne znaki specjalne, których można używać w ciągach znaków dokumentu JSON -

Sr.No. Typ i opis
1

"

podwójny cudzysłów

2

\

ukośnik wsteczny

3

/

ukośnik

4

b

Backspace

5

f

form feed

6

n

Nowa linia

7

r

powrót karetki

8

t

zakładka pozioma

9

u

cztery cyfry szesnastkowe

Składnia

var json-object-name = { string : "string value", .......}

Przykład

Przykład pokazujący typ danych ciągu -

var obj = {name: 'Amit'}

Boolean

Zawiera wartości prawda lub fałsz.

Składnia

var json-object-name = { string : true/false, .......}

Przykład

var obj = {name: 'Amit', marks: 97, distinction: true}

Szyk

  • Jest to uporządkowany zbiór wartości.

  • Są one zawarte w nawiasach kwadratowych, co oznacza, że ​​tablica zaczyna się od. [. i kończy się na.] ..

  • Wartości są oddzielone (przecinek).

  • Indeksowanie tablicy można rozpocząć od 0 lub 1.

  • Tablice powinny być używane, gdy nazwy kluczy są sekwencyjnymi liczbami całkowitymi.

Składnia

[ value, .......]

Przykład

Przykład przedstawiający tablicę zawierającą wiele obiektów -

{
   "books": [
      { "language":"Java" , "edition":"second" },
      { "language":"C++" , "lastName":"fifth" },
      { "language":"C" , "lastName":"third" }
   ]
}

Obiekt

  • Jest to nieuporządkowany zestaw par nazwa / wartość.

  • Obiekty są zawarte w nawiasach klamrowych, to znaczy zaczyna się od „{” i kończy na „}”.

  • Po każdej nazwie następuje znak „:” (dwukropek), a pary klucz / wartość są oddzielone (przecinek).

  • Klucze muszą być ciągami i powinny się różnić od siebie.

  • Obiekty powinny być używane, gdy nazwy kluczy są dowolnymi ciągami.

Składnia

{ string : value, .......}

Przykład

Przykład pokazujący obiekt -

{
   "id": "011A",
   "language": "JAVA",
   "price": 500,
}

Biała przestrzeń

Można go włożyć między dowolną parę tokenów. Można go dodać, aby kod był bardziej czytelny. Przykład pokazuje deklarację zi bez spacji -

Składnia

{string:" ",....}

Przykład

var obj1 = {"name": "Sachin Tendulkar"}
var obj2 = {"name": "SauravGanguly"}

zero

To oznacza pusty typ.

Składnia

null

Przykład

var i = null;

if(i == 1) {
   document.write("<h1>value is 1</h1>");
} else {
   document.write("<h1>value is null</h1>");
}

Wartość JSON

Obejmuje -

  • liczba (liczba całkowita lub zmiennoprzecinkowa)
  • string
  • boolean
  • array
  • object
  • null

Składnia

String | Number | Object | Array | TRUE | FALSE | NULL

Przykład

var i = 1;
var j = "sachin";
var k = null;

Tworzenie prostych obiektów

Obiekty JSON można tworzyć za pomocą JavaScript. Zobaczmy różne sposoby tworzenia obiektów JSON za pomocą JavaScript -

  • Utworzenie pustego obiektu -
var JSONObj = {};
  • Utworzenie nowego obiektu -
var JSONObj = new Object();
  • Stworzenie obiektu z atrybutem bookname z wartością w łańcuchu, atrybut pricez wartością liczbową. Dostęp do atrybutu uzyskuje się za pomocą „.” Operator -

var JSONObj = { "bookname ":"VB BLACK BOOK", "price":500 };

To jest przykład, który pokazuje tworzenie obiektu w javascript przy użyciu JSON, zapisz poniższy kod jako 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>

Teraz spróbujmy otworzyć obiekt Json za pomocą IE lub dowolnej innej przeglądarki obsługującej JavaScript. Daje następujący wynik -

Tworzenie obiektów tablicowych

Poniższy przykład pokazuje tworzenie obiektu tablicy w javascript przy użyciu JSON, zapisz poniższy kod jako 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>

Teraz spróbujmy otworzyć obiekt Json Array przy użyciu IE lub dowolnej innej przeglądarki obsługującej JavaScript. Daje następujący wynik -

Schemat JSON to specyfikacja formatu opartego na JSON do definiowania struktury danych JSON. Został napisany w ramach projektu IETF, który wygasł w 2011 roku. Schemat JSON -

  • Opisuje istniejący format danych.
  • Przejrzysta, czytelna dla człowieka i maszyny dokumentacja.
  • Pełna walidacja strukturalna, przydatna do testów automatycznych.
  • Pełna walidacja strukturalna, weryfikacja danych przesłanych przez klienta.

Biblioteki walidacji schematu JSON

Obecnie dostępnych jest kilka walidatorów dla różnych języków programowania. Obecnie najbardziej kompletnym i zgodnym walidatorem schematu JSON jest JSV.

Języki Biblioteki
do WJElement (LGPLv3)
Jawa json-schema-validator (LGPLv3)
.NETTO Json.NET (MIT)
ActionScript 3 Frigga (MIT)
Haskell aeson-schema (MIT)
Pyton Jsonschema
Rubin autoparse (ASL 2.0); ruby-jsonschema (MIT)
PHP php-json-schema (MIT). json-schema (Berkeley)
JavaScript Uporządkowany (BSD); JSV; json-schema; Matic (MIT); Dojo; Wytrwaj (zmodyfikowany BSD lub AFL 2.0); schema.js.

Przykład schematu JSON

Poniżej podano podstawowy schemat JSON, który obejmuje klasyczny opis katalogu produktów -

{
   "$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"]
}

Sprawdźmy różne ważne słowa kluczowe, które można zastosować w tym schemacie -

Sr.No. Słowo kluczowe i opis
1

$schema

Słowo kluczowe $ schema określa, że ​​ten schemat został napisany zgodnie z roboczą specyfikacją v4.

2

title

Użyjesz tego, aby nadać tytuł swojemu schematowi.

3

description

Mały opis schematu.

4

type

Słowo kluczowe type definiuje pierwsze ograniczenie dotyczące naszych danych JSON: musi to być obiekt JSON.

5

properties

Definiuje różne klucze i ich typy wartości, minimalne i maksymalne wartości, które mają być używane w pliku JSON.

6

required

To zachowuje listę wymaganych właściwości.

7

minimum

To jest ograniczenie, które należy nałożyć na wartość i reprezentuje minimalną dopuszczalną wartość.

8

exclusiveMinimum

Jeśli „exclusiveMinimum” jest obecne i ma wartość logiczną true, instancja jest prawidłowa, jeśli jest ściśle większa niż wartość „minimum”.

9

maximum

To jest ograniczenie, które należy nałożyć na wartość i reprezentuje maksymalną dopuszczalną wartość.

10

exclusiveMaximum

Jeśli „exclusiveMaximum” jest obecne i ma wartość logiczną true, instancja jest prawidłowa, jeśli jest dokładnie niższa niż wartość „maximum”.

11

multipleOf

Wystąpienie liczbowe jest poprawne w stosunku do „multipleOf”, jeśli wynikiem podzielenia instancji przez wartość tego słowa kluczowego jest liczba całkowita.

12

maxLength

Długość wystąpienia ciągu definiuje się jako maksymalną liczbę jego znaków.

13

minLength

Długość wystąpienia ciągu definiuje się jako minimalną liczbę jego znaków.

14

pattern

Instancja ciągu jest uważana za poprawną, jeśli wyrażenie regularne pasuje do instancji.

Możesz sprawdzić http://json-schema.orgaby zapoznać się z pełną listą słów kluczowych, których można użyć podczas definiowania schematu JSON. Powyższy schemat może służyć do testowania poprawności następującego kodu JSON -

[
   {
      "id": 2,
      "name": "An ice sculpture",
      "price": 12.50,
   },
	
   {
      "id": 3,
      "name": "A blue mouse",
      "price": 25.50,
   }
]

JSON i XML to formaty czytelne dla człowieka i niezależne od języka. Obaj mają wsparcie dla tworzenia, czytania i dekodowania w rzeczywistych sytuacjach. Możemy porównać JSON z XML, opierając się na następujących czynnikach -

Gadatliwy

XML jest bardziej szczegółowy niż JSON, więc pisanie JSON jest szybsze dla programistów.

Wykorzystanie tablic

XML jest używany do opisu danych strukturalnych, które nie obejmują tablic, podczas gdy JSON obejmuje tablice.

Rozbiór gramatyczny zdania

Javascript w eval metoda analizuje JSON. Po zastosowaniu do formatu JSON eval zwraca opisany obiekt.

Przykład

Poszczególne przykłady XML i JSON -

JSON

{
   "company": Volkswagen,
   "name": "Vento",
   "price": 800000
}

XML

<car>
   <company>Volkswagen</company>
   <name>Vento</name>
   <price>800000</price>
</car>

W tym rozdziale omówiono kodowanie i dekodowanie obiektów JSON przy użyciu języka programowania PHP. Zacznijmy od przygotowania środowiska do programowania w PHP dla JSON.

Środowisko

Począwszy od PHP 5.2.0, rozszerzenie JSON jest domyślnie dołączane i kompilowane do PHP.

Funkcje JSON

Funkcjonować Biblioteki
json_encode Zwraca reprezentację wartości w formacie JSON.
json_decode Dekoduje ciąg JSON.
json_last_error Zwraca ostatni błąd.

Kodowanie JSON w PHP (json_encode)

Funkcja json_encode () PHP służy do kodowania JSON w PHP. Ta funkcja zwraca reprezentację wartości w formacie JSON w przypadku sukcesu lub FALSE w przypadku niepowodzenia.

Składnia

string json_encode ( $value [, $options = 0 ] )

Parametry

  • value- kodowana wartość. Ta funkcja działa tylko z danymi zakodowanymi w UTF-8.

  • options - Ta opcjonalna wartość to maska ​​bitowa składająca się z JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT.

Przykład

Poniższy przykład pokazuje, jak przekonwertować tablicę na JSON za pomocą PHP -

<?php
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);
?>

Podczas wykonywania da to następujący wynik -

{"a":1,"b":2,"c":3,"d":4,"e":5}

Poniższy przykład pokazuje, jak obiekty PHP można przekonwertować na 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);
?>

Podczas wykonywania da to następujący wynik -

{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}

Dekodowanie JSON w PHP (json_decode)

Funkcja json_decode () PHP służy do dekodowania JSON w PHP. Ta funkcja zwraca wartość zdekodowaną z json do odpowiedniego typu PHP.

Składnia

mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

Paramaters

  • json_string - Jest to zakodowany ciąg, który musi być danymi zakodowanymi w UTF-8.

  • assoc - Jest to parametr typu boolowskiego, po ustawieniu na TRUE zwrócone obiekty zostaną przekonwertowane na tablice asocjacyjne.

  • depth - Jest to parametr typu całkowitego, który określa głębokość rekursji

  • options - Jest to maska ​​bitowa typu integer z dekodowaniem JSON, obsługiwana jest JSON_BIGINT_AS_STRING.

Przykład

Poniższy przykład pokazuje, jak można wykorzystać PHP do dekodowania obiektów JSON -

<?php
   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>

Podczas wykonywania da następujący wynik -

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

W tym rozdziale omówiono kodowanie i dekodowanie obiektów JSON przy użyciu języka programowania Perl. Zacznijmy od przygotowania środowiska do programowania w Perlu dla JSON.

Środowisko

Zanim zaczniesz kodować i dekodować JSON za pomocą Perla, musisz zainstalować moduł JSON, który można pobrać z CPAN. Po pobraniu JSON-2.53.tar.gz lub dowolnej innej najnowszej wersji wykonaj czynności wymienione poniżej -

$tar xvfz JSON-2.53.tar.gz
$cd JSON-2.53 $perl Makefile.PL
$make $make install

Funkcje JSON

Funkcjonować Biblioteki
encode_json Konwertuje daną strukturę danych Perl na ciąg binarny zakodowany w formacie UTF-8.
decode_json Dekoduje ciąg JSON.
to_json Konwertuje daną strukturę danych Perl na ciąg json.
from_json Oczekuje ciągu JSON i próbuje go przeanalizować, zwracając wynikowe odwołanie.
convert_blessed Użyj tej funkcji z wartością true, aby Perl mógł użyć metody TO_JSON na klasie obiektu, aby przekonwertować obiekt na JSON.

Kodowanie JSON w Perlu (encode_json)

Funkcja Perl encode_json () konwertuje daną strukturę danych Perla na ciąg binarny zakodowany w UTF-8.

Składnia

$json_text = encode_json ($perl_scalar );
or
$json_text = JSON->new->utf8->encode($perl_scalar);

Przykład

Poniższy przykład pokazuje tablice w formacie JSON z 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";

Podczas wykonywania da to następujący wynik -

{"e":5,"c":3,"a":1,"b":2,"d":4}

Poniższy przykład pokazuje, jak obiekty Perla można konwertować na 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";

Podczas wykonywania da następujący wynik -

{"birthdate":"8/5/1974 12:20:03 pm","name":"sachin","hobbies":"sports"}

Dekodowanie JSON w Perlu (decode_json)

Funkcja Perl decode_json () służy do dekodowania JSON w Perlu. Ta funkcja zwraca wartość zdekodowaną z json do odpowiedniego typu Perla.

Składnia

$perl_scalar = decode_json $json_text
or
$perl_scalar = JSON->new->utf8->decode($json_text)

Przykład

Poniższy przykład pokazuje, jak można użyć Perla do dekodowania obiektów JSON. Tutaj będziesz musiał zainstalować moduł Data :: Dumper, jeśli nie masz go jeszcze na swoim komputerze.

#!/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);

Podczas wykonywania da następujący wynik -

$VAR1 = {
   'e' => 5,
   'c' => 3,
   'a' => 1,
   'b' => 2,
   'd' => 4
};

W tym rozdziale omówiono kodowanie i dekodowanie obiektów JSON przy użyciu języka programowania Python. Zacznijmy od przygotowania środowiska do rozpoczęcia programowania w Pythonie dla JSON.

Środowisko

Zanim zaczniesz kodować i dekodować JSON za pomocą Pythona, musisz zainstalować dowolny z dostępnych modułów JSON. W tym samouczku pobraliśmy i zainstalowaliśmy Demjson w następujący sposób -

$tar xvfz demjson-1.6.tar.gz
$cd demjson-1.6 $python setup.py install

Funkcje JSON

Funkcjonować Biblioteki
kodować Koduje obiekt Pythona w reprezentację w postaci ciągu JSON.
rozszyfrować Dekoduje ciąg zakodowany w formacie JSON do obiektu w języku Python.

Kodowanie JSON w Pythonie (kodowanie)

Funkcja encode () w języku Python koduje obiekt w języku Python do postaci łańcucha JSON.

Składnia

demjson.encode(self, obj, nest_level=0)

Przykład

Poniższy przykład przedstawia tablice w formacie JSON w języku Python.

#!/usr/bin/python
import demjson

data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

json = demjson.encode(data)
print json

Podczas wykonywania da to następujący wynik -

[{"a":1,"b":2,"c":3,"d":4,"e":5}]

Dekodowanie JSON w Pythonie (dekodowanie)

Python może używać funkcji demjson.decode () do dekodowania JSON. Ta funkcja zwraca wartość zdekodowaną z json do odpowiedniego typu w Pythonie.

Składnia

demjson.decode(self, txt)

Przykład

Poniższy przykład pokazuje, jak można użyć języka Python do dekodowania obiektów JSON.

#!/usr/bin/python
import demjson

json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

text = demjson.decode(json)
print  text

Podczas wykonywania da następujący wynik -

{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}

W tym rozdziale omówiono kodowanie i dekodowanie obiektów JSON za pomocą języka programowania Ruby. Zacznijmy od przygotowania środowiska do rozpoczęcia programowania w Ruby for JSON.

Środowisko

Zanim zaczniesz kodować i dekodować JSON przy użyciu Ruby, musisz zainstalować dowolny z modułów JSON dostępnych dla Ruby. Być może będziesz musiał zainstalować Ruby gem, ale jeśli używasz najnowszej wersji Ruby, musisz mieć już zainstalowany gem na swoim komputerze, w przeciwnym razie wykonaj następujące kroki, zakładając, że masz już zainstalowany klejnot -

$gem install json

Przetwarzanie JSON przy użyciu Rubiego

Poniższy przykład pokazuje, że pierwsze 2 klucze przechowują wartości ciągów, a ostatnie 3 klucze przechowują tablice ciągów. Zachowajmy następującą zawartość w pliku o nazwieinput.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"
   ]
	
}

Poniżej podano program Ruby, który będzie używany do analizowania wspomnianego wyżej dokumentu JSON -

#!/usr/bin/ruby
require 'rubygems'
require 'json'
require 'pp'

json = File.read('input.json')
obj = JSON.parse(json)

pp obj

Podczas wykonywania da następujący wynik -

{
   "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"]
}

W tym rozdziale omówiono kodowanie i dekodowanie obiektów JSON za pomocą języka programowania Java. Zacznijmy od przygotowania środowiska do programowania w Javie dla JSON.

Środowisko

Zanim zaczniesz kodować i dekodować JSON przy użyciu języka Java, musisz zainstalować dowolny z dostępnych modułów JSON. W tym samouczku pobraliśmy i zainstalowaliśmy JSON.simple oraz dodaliśmy lokalizacjęjson-simple-1.1.1.jar plik do zmiennej środowiskowej CLASSPATH.

Mapowanie między jednostkami JSON i Java

JSON.simple odwzorowuje encje od lewej do prawej strony podczas dekodowania lub analizowania, a także mapuje encje od prawej do lewej podczas kodowania.

JSON Jawa
strunowy java.lang.String
numer java.lang.Number
prawda | fałsz java.lang.Boolean
zero zero
szyk java.util.List
obiekt java.util.Map

Podczas dekodowania domyślną klasą konkretną java.util.List jest org.json.simple.JSONArray, a domyślną klasą betonu java.util.Map jest org.json.simple.JSONObject .

Kodowanie JSON w Javie

Poniżej znajduje się prosty przykład kodowania obiektu JSON przy użyciu Java JSONObject, która jest podklasą java.util.HashMap. Brak możliwości zamówienia. Jeśli potrzebujesz ścisłej kolejności elementów, użyj metody JSONValue.toJSONString (map) z uporządkowaną implementacją mapy, taką jak 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);
   }
}

Po skompilowaniu i wykonaniu powyższego programu zostanie wygenerowany następujący wynik -

{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}

Poniżej znajduje się kolejny przykład, który przedstawia strumieniowe przesyłanie obiektów JSON przy użyciu 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);
   }
}

Podczas kompilacji i wykonywania powyższego programu generowany jest następujący wynik -

{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}

Dekodowanie JSON w Javie

Poniższy przykład wykorzystuje JSONObject i JSONArray gdzie JSONObject to java.util.Map, a JSONArray to java.util.List, więc możesz uzyskać do nich dostęp za pomocą standardowych operacji Map lub 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);
      }
   }
}

Podczas kompilacji i wykonywania powyższego programu zostanie wygenerowany następujący wynik -

The 2nd element of array
{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}

Field "1"
{"2":{"3":{"4":[5,{"6":7}]}}}
{}
[5]
[5,2]

AJAX to asynchroniczny JavaScript i XML, który jest używany po stronie klienta jako grupa powiązanych ze sobą technik tworzenia aplikacji internetowych w celu tworzenia asynchronicznych aplikacji internetowych. Zgodnie z modelem AJAX aplikacje internetowe mogą wysyłać i pobierać dane z serwera asynchronicznie, bez zakłócania wyświetlania i zachowania istniejącej strony.

Wielu programistów używa formatu JSON do przekazywania aktualizacji AJAX między klientem a serwerem. Strony internetowe aktualizujące wyniki sportowe na żywo można uznać za przykład AJAX. Jeśli te wyniki muszą być aktualizowane na stronie internetowej, muszą być przechowywane na serwerze, aby strona internetowa mogła pobrać wynik, gdy jest to wymagane. W tym miejscu możemy wykorzystać dane w formacie JSON.

Wszelkie dane aktualizowane za pomocą AJAX można przechowywać przy użyciu formatu JSON na serwerze internetowym. AJAX jest używany, aby javascript mógł w razie potrzeby pobrać te pliki JSON, przeanalizować je i wykonać jedną z następujących operacji -

  • Przechowuj przeanalizowane wartości w zmiennych do dalszego przetwarzania przed wyświetleniem ich na stronie internetowej.

  • Bezpośrednio przypisuje dane do elementów DOM na stronie internetowej, dzięki czemu są one wyświetlane na stronie.

Przykład

Poniższy kod przedstawia JSON z AJAX. Zapisz to jakoajax.htmplik. Tutaj funkcja ładowania loadJSON () jest używana asynchronicznie do przesyłania danych 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>

Poniżej podano plik wejściowy data.json, mając dane w formacie JSON, które zostaną przesłane asynchronicznie po kliknięciu pliku Update Detailprzycisk. Ten plik jest przechowywany whttp://www.tutorialspoint.com/json/

{"name": "Brett", "country": "Australia"}

Powyższy kod HTML wygeneruje następujący ekran, na którym możesz sprawdzić AJAX w akcji -

Cricketer Szczegóły

Nazwa Kraj
Sachin
Indie

Po kliknięciu pliku Update Detailpowinieneś otrzymać następujący wynik. Możesz samodzielnie wypróbować JSON z AJAX , pod warunkiem, że Twoja przeglądarka obsługuje Javascript.

Cricketer Szczegóły

Nazwa Kraj
Brett
Australia