Conversione e utilizzo di stringhe JSON in PHP
Conversione e utilizzo di stringhe JSON in PHP
Conversione e utilizzo di stringhe JSON in PHP
Guida in italiano
Mettiamo di avere la seguente stringa JSON in una variabile $StringaJSON:
{ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "ISO 8879:1986", "GlossDef": { "para": "A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": ["GML", "XML"] }, "GlossSee": "markup" } } } } }
Bene, prima di tutto dobbiamo procedere a convertirla in un Array e poi visualizzare l’array a schermo:
// Convertiamo il nostro file JSON in un Array $Array_StringaJSON = json_decode($StringaJSON, true); // Vediamo il risultato dell'array print_r($Array_StringaJSON);
A questo punto ricaricando la pagina dovremmo vedere l’array stampato a schermo, anche se visualizzato in modo lineare e non strutturato. Per vederlo in modo strutturato dunque dobbiamo (nel caso di Firefox ma dovrebbe essere simile per tutti i browser) cliccare con il tasto destro sulla pagina e cliccare poi sulla voce visualizza sorgente pagina. Vi apparirà questa struttura:
Array ( [glossary] => Array ( [title] => example glossary [GlossDiv] => Array ( [title] => S [GlossList] => Array ( [GlossEntry] => Array ( [ID] => SGML [SortAs] => SGML [GlossTerm] => Standard Generalized Markup Language [Acronym] => SGML [Abbrev] => ISO 8879:1986 [GlossDef] => Array ( [para] => A meta-markup language, used to create markup languages such as DocBook. [GlossSeeAlso] => Array ( [0] => GML [1] => XML ) ) [GlossSee] => markup ) ) ) ) )
A questo punto abbiamo una visuale facile per accedere alle informazioni, visto che non dovremmo fare altro che chiamare le varie voci dell’array partendo da sinistra. Ecco degli esempi:
echo $Array_StringaJSON["glossary"]["title"]; // Ritornerà la stringa: example glossary echo $Array_StringaJSON["glossary"]["GlossDiv"]["title"]; // Ritornerà la stringa: S echo $Array_StringaJSON["glossary"]["GlossDiv"]["GlossList"]["GlossEntry"]["Acronym"] // Ritornerà la stringa: SGML
Dunque riassumento il codice è il seguente:
// Il nostro file JSON $StringaJSON = '{ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "ISO 8879:1986", "GlossDef": { "para": "A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": ["GML", "XML"] }, "GlossSee": "markup" } } } } }'; // Convertiamo il nostro file JSON in un Array $Array_StringaJSON = json_decode($StringaJSON, true); // Vediamo il risultato dell'array print_r($Array_StringaJSON); // Ovviamente potete rimuovere questa linea quando non dovrete più guardare la struttura dell'array echo $Array_StringaJSON["glossary"]["title"]; // Ritornerà la stringa: example glossary echo $Array_StringaJSON["glossary"]["GlossDiv"]["title"]; // Ritornerà la stringa S echo $Array_StringaJSON["glossary"]["GlossDiv"]["GlossList"]["GlossEntry"]["Acronym"] // Ritornerà la stringa: SGML
Link alla discussione ufficiale di questo articolo sul forum.