Introduzione a JSON
JSON (JavaScript Object Notation) è un semplice formato per lo scambio di dati. Per gli umani è facile da leggere e scrivere, mentre per le macchine risulta facile generare e analizzare la sintassi. Si basa su un sottoinsieme del JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999.
JSON è un formato di testo completamente indipendente da linguaggio ma utilizza convenzioni conosciute dai programmatori di linguaggi della famiglia di C, come C, C++, C#, Java, JavaScript, Perl, Python, e molti altri. Queste proprietà fanno di JSON un linguaggio ideale per lo scambio di dati.
- object
- {}
{ members } - members
- string : value
members , string : value - array
- []
[ elements ] - elements
- value
elements , value - value
- string
number
object
array
true
false
null - string
- ""
" chars " - chars
- char
chars char - char
- any-Unicode-except-"-or-\-or-control
\"
\\
\/
\b
\f
\n
\r
\t
\u four-hex-digits - number
- int
int frac
int exp
int frac exp - int
- digit
digit1-9 digits
- digit
- digit1-9 digits - frac
- . digits
- exp
- e digits
- digits
- digit
digits digit - e
- e
e+
e-
E
E+
E-
JSON è costruito su due strutture:
- Una raccolta di coppie nome/valore. In diversi linguaggi, questo è realizzato come un oggetto, un record, uno struct, un dizionario, una tabella hash, un elenco di chiavi o un array associativo.
- Un elenco di valori. Nella maggior parte dei linguaggi, questo si realizza con un array, un vettore, un elenco o una sequenza.
Queste sono strutture di dati universali. Virtualmente tutti i linguaggi di programmazione moderni li supportano in entrambe le forme. E' sensato che un formato di dati che è interscambiabile con linguaggi di programmazione debba essere basato su queste strutture.
In JSON, assumono queste forme:
- Un oggetto è una serie non ordinata di nomi/valori. Un oggetto inizia con { (parentesi graffa sinistra) e finisce con } (parentesi graffa destra). Ogni nome è seguito da : (due punti) e la coppia di nomw/valore è separata da , (virgola).
- Un array è una raccolta ordinata di valori. Un array comincia con [ (parentesi quadra sinistra) e finisce con ] (parentesi quadra destra). I valori sono separati da , (virgola).
- Un valore può essere una stringa tra virgolette, o un numero, o vero o falso o nullo, o un oggetto o un array. Queste strutture possono essere annidate.
- Una stringa è una raccolta di zero o più caratteri Unicode, tra virgolette, usando la barra rovesciata. Un carattere è rappresentato come una singola stringa di caratteri
A parte alcuni dettagli di codificazione, questo descrive totalmente il linguaggio.

Una stringa è molto simile ad una stringa C o Java. Un numero è molto simile ad un numero C o Java, a parte il fatto che i formati ottali e esadecimali non sono usati.

Gli spazi possono essere inseriti in mezzo a qualsiasi coppia di token.
- JSON in C++.
- JSON in C#, e Jayrock.
- JSON in Cold Fusion.
- JSON in Delphi.
- JSON in E.
- JSON in Objective CAML.
- JSON in Perl.
- JSON in PHP: JSON-PHP e PHP-JSON.
- JSON in Python.
- JSON in Rebol.
- JSON in Ruby.
- JSON in Chicken Scheme.