Il formato JSON in PHP
JSON è un formato per la memorizzazione dei dati. Questo formato è spesso utilizzato per lo scambio di dati tra siti web, o tra il server e il browser. Questo formato è più compatto e semplice rispetto all'XML, quindi al momento è utilizzato molto più ampiamente.
L'acronimo JSON sta per JavaScript Object Notation. Il fatto è che originariamente JSON è stato ideato nel linguaggio JavaScript, ma ora è utilizzato ovunque.
Dal punto di vista di PHP, i dati in formato JSON sono rappresentati da una stringa:
<?php
$str = '
// qui ci sarà il JSON
';
?>
Il formato stesso è una sorta di
struttura multidimensionale, composta
da array ordinari e associativi.
Gli elementi degli array possono essere stringhe
obbligatoriamente tra doppi apici, numeri,
valori true, false
o null.
Vediamo alcuni esempi. Creiamo un array con numeri:
<?php
$str = '[1, 2, 3, 4, 5]';
?>
Creiamo un array con stringhe:
<?php
$str = '["a", "b", "c"]';
?>
Creiamo un array con contenuto misto:
<?php
$str = '[1, "a", true, false, null]';
?>
Creiamo ora un array associativo. In termini di JavaScript, tali array sono chiamati oggetti. Gli oggetti sono racchiusi tra parentesi graffe, e le chiavi sono separate dai valori da due punti. Inoltre, le chiavi di tali array devono essere stringhe obbligatoriamente tra doppi apici. Facciamo un esempio di oggetto:
<?php
$str = '{
"a": 1,
"b": 2,
"c": 3
}';
?>
È possibile combinare array e oggetti in strutture di qualsiasi livello di annidamento:
<?php
$str = '{
"a": [1, 2, 3],
"b": [4, 5, 6]
}';
?>
Si noti che le virgole finali dopo l'ultimo elemento nel formato JSON non sono consentite:
<?php
$str = '[
"a",
"b",
"c",
]'; // l'ultima virgola è superflua
?>
Converti la seguente struttura PHP in una stringa JSON:
<?php
$data = [1, 2, 3];
?>
Converti la seguente struttura PHP in una stringa JSON:
<?php
$data = ['x', 'y', 'z',];
?>
Converti la seguente struttura PHP in una stringa JSON:
<?php
$data = [
'x' => 'a',
'y' => 'b',
'z' => 'c',
];
?>
Converti la seguente struttura PHP in una stringa JSON:
<?php
$data = [
'ru' => ['1', '2', '3'],
'en' => ['a', 'b', 'c'],
];
?>