Codifica e decodifica JSON
Convertire gli array PHP in JSON e analizzare le risposte JSON con json_encode/json_decode.
Codifica e decodifica JSON è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 4 lezioni in totale.
Che cos'è JSON?
JSON (JavaScript Object Notation) è un formato di dati leggero utilizzato per la comunicazione con le API e per i file di configurazione. PHP dispone di funzioni integrate per codificarlo e decodificarlo.
json_encode()
Converte un valore PHP (array, oggetto o scalare) in una stringa JSON.
<?php
$data = ["name" => "Alice", "age" => 30, "active" => true];
$json = json_encode($data);
echo $json; // {"name":"Alice","age":30,"active":true}json_decode()
Analizza una stringa JSON e restituisce un valore PHP. Per impostazione predefinita restituisce oggetti stdClass; passare true come secondo argomento per ottenere array associativi.
<?php
$json = '{"name":"Alice","age":30}';
$obj = json_decode($json); // stdClass
$arr = json_decode($json, true); // associative array
echo $arr["name"]; // "Alice"Formattazione leggibile di JSON
Utilizzi il flag JSON_PRETTY_PRINT per formattare l'output in modo leggibile.
<?php
$json = json_encode(["a" => 1, "b" => 2], JSON_PRETTY_PRINT);
echo $json;
// {
// "a": 1,
// "b": 2
// }Flag utili di json_encode
I flag più comuni sono: JSON_UNESCAPED_UNICODE (mantiene UTF-8 invariato), JSON_UNESCAPED_SLASHES (nessuna barra rovesciata prima di /), JSON_THROW_ON_ERROR (genera un'eccezione in caso di errore).
<?php
$json = json_encode(["url" => "https://example.com/path"],
JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);Gestione degli errori
Controlli json_last_error() dopo la codifica o decodifica, oppure utilizzi JSON_THROW_ON_ERROR per ottenere automaticamente un'eccezione.
<?php
try {
$data = json_decode($input, true, 512, JSON_THROW_ON_ERROR);
} catch (\JsonException $e) {
echo "Invalid JSON: ".$e->getMessage();
}Codifica degli oggetti
Gli oggetti vengono codificati come oggetti JSON. Per impostazione predefinita vengono incluse solo le proprietà pubbliche. Implementi JsonSerializable per controllare la serializzazione.
<?php
class Point implements \JsonSerializable {
public function __construct(
private float $x, private float $y
) {}
public function jsonSerialize(): mixed {
return ["x" => $this->x, "y" => $this->y];
}
}
echo json_encode(new Point(1.0, 2.5)); // {"x":1,"y":2.5}Strutture annidate
JSON supporta l'annidamento. Gli array PHP profondamente annidati vengono codificati senza problemi in oggetti o array JSON annidati.
<?php
$order = [
"id" => 1,
"items" => [
["sku" => "A1", "qty" => 2],
["sku" => "B3", "qty" => 1],
],
];
echo json_encode($order, JSON_PRETTY_PRINT);Profondità della decodifica
Il terzo parametro di json_decode imposta la profondità massima di ricorsione (512 per impostazione predefinita). Per JSON molto profondi potrebbe essere necessario un limite maggiore.
JSON_NUMERIC_CHECK
Il flag JSON_NUMERIC_CHECK converte le stringhe numeriche in numeri durante la codifica. Lo utilizzi con cautela: potrebbe danneggiare i numeri di telefono.
Elaborazione in streaming di JSON di grandi dimensioni
Per file JSON molto grandi, utilizzi una libreria di parsing in streaming, ad esempio halaxa/json-machine, invece di caricare l'intero file con json_decode.
Riepilogo
json_encode converte i valori PHP in stringhe JSON. json_decode analizza JSON. Utilizzi JSON_THROW_ON_ERROR per una gestione sicura degli errori.
Verifica rapida
Come si ottiene un array associativo da json_decode?
Domande Frequenti
La lezione «Codifica e decodifica JSON» è gratuita?
Sì — il testo completo di «Codifica e decodifica JSON» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 4 lezioni in totale.
Cosa imparerò in «Codifica e decodifica JSON»?
Convertire gli array PHP in JSON e analizzare le risposte JSON con json_encode/json_decode. Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare PHP Academy?
Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Codifica e decodifica JSON»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione PHP Academy?
Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Codifica e decodifica JSON
- Richieste HTTP con cURL
- Gestione delle risposte e degli errori delle API
- Creazione di un semplice client API