/ //

Funzioni PHP per JSON - GM Multimedia

Vai ai contenuti

Menu principale:

Funzioni PHP per JSON

Guida PHP



         JSON (JavaScript Object Notation) è un formato utilizzato per lo scambio di dati, tale notazione deve gran parte del suo successo alla semplicità di lettura e scrittura da parte degli sviluppatori e, nello stesso tempo, risulta semplice per un calcolatore generare e analizzarne la sintassi.
         Un esempio di una stringa JSON valida è la seguente:
				{
				    "firstName": "Simone",
				    "lastName": "D'Amico",
				    "birthDate": "2000-01-01",
				    "country": "IT"
				}
         Come possiamo notare, essa è molto semplice da leggere perché scritta in modo molto vicino alla sintassi degli array che già conosciamo. PHP ci mette a disposizione due funzioni per convertire una stringa JSON in un oggetto o un array e viceversa.


Convertire una stringa JSON in PHP
         La funzione che abbiamo a disposizione per decodificare una stringa JSON si chiama json_decode() e prende in ingresso principalmente due parametri:
  1. $json: la stringa JSON da decodificare;
  2. $assoc: un booleano che indica se convertire la stringa in un oggetto stdClass quando il valore è false, oppure in un array associativo se il valore è true. Di default è false.
         Supponiamo di avere la stringa proposta in precedenza all'interno di una variabile e vediamo come convertirla in un array associativo:
				$jsonUser = '{"firstName":"Simone","lastName":"D\'Amico"}';
				$user = json_decode($jsonUser, true);
				print_r($user);
         Il risultato che otteniamo è il seguente:
				Array
				(
				    [firstName] => Simone
				    [lastName] => D'Amico
				)
         Nel caso in cui una stringa sia malformata, viene restituito null, possiamo però utilizzare la funzione
				json_last_error_msg() per farci restituire l'errore relativo:
				// la stringa contiene una virgola di troppo dopo il nome
				$jsonUser = '{"firstName":"Simone",}';
				$user = json_decode($jsonUser, true);
				echo json_last_error_msg();
         La funzione restituirà una notifica Syntax error dato che la decodifica non è andata a buon fine in quanto la stringa è malformata.


Convertire un array in JSON
         Supponiamo di dover gestire il caso contrario a quello appena visto: abbiamo un array (o un qualsiasi altro tipo di dato) e vogliamo convertirlo in una stringa JSON. In questo caso abbiamo bisogno della funzione json_encode() che, dato un valore, restituirà la stringa corrispondente in JSON. Un esempio:
				$user = [
				    'firstName' => 'Simone',
				    'lastName' => 'D\'Amico',
				    'age' => 30
				];
				echo json_encode($user);
         Il risultato che otterremo è il seguente:
				{"firstName":"Simone","lastName":"D'Amico","age":30}
Visitatori online:
Sei il nostro visitatore n°:
© - Copyright 2015. - Tutti i diritti riservati - G.M. Multimedia
Torna ai contenuti | Torna al menu