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
|