L’uso dei JSON è sicuramente vincente nell’accoppiare lato server PHP che interroga un database SQL/NoSQL ed espone un certo set di dati con JavaScript/AJAX lato client che ricevono e mostrano tali dati su browser. Ma l’interoperabilità di JSON è tale da poter essere ricevuto e mostrato anche direttamente da uno script PHP, in pieno rispetto del modello MVC. L’idea qui è lasciare sempre che uno script PHP esponga il JSON che viene “consumato” però da un altro script PHP.
Partiamo da un JSON, ad esempio prelevato da un servizio metereologico. Salviamolo in un file test.json nella stessa directory dove andremo a creare lo script php.
{
"latitude":45.82,
"longitude":11.779999,
"generationtime_ms":0.8679628372192383,
"utc_offset_seconds":7200,
"timezone":"Europe/Berlin",
"timezone_abbreviation":"CEST",
"elevation":191.0,
"current_weather":
{
"temperature":17.9,
"windspeed":7.9,
"winddirection":43.0,
"weathercode":61,
"is_day":1,
"time":"2023-05-20T18:00"
}
}
La soluzione è semplice:
- si apre/legge il file json da opportuno path dove vengono generati/depositati
- si decodifica con le funzioni php o in un array associativo o in un oggetto
- si procede alla visualizzazione nel modo preferito
<?php
$percorso_file = 'test.json';
$json2string = file_get_contents($percorso_file);
//$dati = json_decode($json2string, true); //restituisce un vettore
$dati = json_decode($json2string, false); //restituisce un oggetto
echo "<h1>Situazione meteorologica</h1>";
echo "Latitudine: ".$dati->latitude;
echo "<br>";
echo "Longitudine: ".$dati->longitude;
echo "<br>";
echo "<h2>Previsioni correnti</h2>";
echo "Temperatura: ".$dati->current_weather->temperature." °C";
echo "<br>";
echo "Velocità vento: ".$dati->current_weather->windspeed." Km/h";
echo "<br>";
A questo punto non ci resta che far girare lo script sul nostro server Apache/Nginx per vedere il risultato. Al lettore il divertimento di personalizzare la visualizzazione in formato tabellare e/o con opportuno stile CSS.
Altra possibile applicazione sta nel realizzare uno script php che parsifica un certo numero di elementi di un JSON iniziale e li ri-espone in modo sintetico/parametrizzato ad un opportuno script JS/Ajax o li riscrive per inserire od aggiornare altro database/record.
Ultima modifica 24 Maggio 2023