Corsi on-line

JSON: aggiornamento delle informazioni tramite PHP

Il formato d’interscambio JSON (JavaScript Object Notation) è stato concepito per essere facilmente leggibile e scrivibile sia dagli utilizzatori che dagli esseri umani, questo grazie ad un’impostazione sintattica particolarmente semplice basata su delle convenzioni completamente indipendenti da qualsiasi linguaggio di programmazione o di sviluppo; per contro la manipolazione di un listato JSON potrà essere effettuata in modo rapido ed efficace tramite applicazioni non particolarmente articolare con quella proposta in questo post e realizzata in PHP.jsonA tal proposito si immagini di aver preferito JSON come alternativa al meno intuitivo XML e di voler accedere in lettura ad un file, chiamato, per esempio, dati.json, contenente delle informazioni ordinate in notazione JSON:

[
{
"nome": "Home",
"cognome": "Simpson"
},
{
"nome": "Apu",
"cognome": "Nahasapeemapetilon"
},
{
"nome": "Montgomery",
"cognome": "Burns"
}
]

Per accedere ad esso sarà sufficiente utilizzare uno script come il seguente che utilizza la funzione file_get_contents() con la quale leggere il contenuto di un file all’interno di una stringa, json_decode() per l’interpretazione del contenuto stesso e, infine, un ciclo d’iterazione foreach che permetterà di estrarre i dati presenti nel file JSON utilizzando il classico modello chiave/valore già ampiamente adottato per gli array.

$data = file_get_contents ("dati.json");
$json = json_decode($data, true);
foreach ($json as $key => $value) {
if (!is_array($value)) {
echo $key . '=>' . $value . '';
} else {
foreach ($value as $key => $val) {
echo $key . '=>' . $val . '';
}
}
}
?>

Ora, quale operazione si dovrebbe effettuare per inserire dei nuovi dati all’interno di un file JSON? Per spiegare tale procedura potremmo prendere in considerazione come nuovo esempio una notazione leggermente più complessa di quella proposta in precedenza:

[{
"hsim":{
"nome":"Homer",
"cognome":"Simpson"
},
"anah":{
"nome":"Apu",
"cognome":"Nahasapeemapetilon"
},
"mbur":{
"nome":"Montgomery",
"cognome":"Burns"
} 
}]

Il codice PHP per l’inserimento dei nuovi dati sarà invece il seguente:

$utente = "cwin";
$nome = "Clancy";
$cognome = "Winchester";
$file = "doc.json";
$json = json_decode(file_get_contents($file), true);
$json[$utente] = array("nome" => $nome, "cognome" => $cognome);
file_put_contents($file, json_encode($json));

Una volta eseguita questa piccola applicazione il file JSON dovrebbe contenere un’informazione addizionale:

"cwin":{
"nome":"Clancy",
"cognome":"Winchester"
}

In questo caso si noti l’utilizzo della funzione file_put_contents(), il cui compito è quello di aggiungere dati al file che le viene passato come argomento, che accetta come parametro quest’ultimo a sua volta argomento di json_encode(), funzione deputata che in pratica restituisce la rappresentazione di un valore in notazione JSON.

Post correlati
I più letti del mese
Tematiche