json_decode în PHP

JSON PHP 5.2+

Transformă un text JSON în tablou sau obiect PHP.

Sintaxă
json_decode(string $json, ?bool $asociativ = null, int $adancime = 512, int $optiuni = 0): mixed

Ce face json_decode

json_decode citește JSON primit de la un API sau dintr-un fișier. Cu al doilea parametru true obții tablouri asociative, cel mai ușor de folosit.

Dacă JSON-ul este invalid, returnează null. Cu opțiunea JSON_THROW_ON_ERROR primești o excepție cu motivul exact.

Parametri

Parametru Descriere
$json Textul JSON.
$asociativ true pentru tablouri, false pentru obiecte.
$optiuni Opțional. De exemplu JSON_THROW_ON_ERROR.

Ce returnează

Datele decodate sau null la eroare.

Exemple

Exemplul 1: JSON în tablou

<?php
$json = '{"nume":"Ana","varsta":25,"limbaje":["PHP","SQL"]}';

$date = json_decode($json, true);
echo $date["nume"] . " știe " . implode(" și ", $date["limbaje"]);

Rezultat

Ana știe PHP și SQL

Exemplul 2: Tablou sau obiect

<?php
$json = '{"oras":"Cluj"}';

echo json_decode($json, true)["oras"] . "\n";
echo json_decode($json)->oras;

Rezultat

Cluj
Cluj

Exemplul 3: Tratarea unui JSON invalid

<?php
try {
    json_decode("{nume: Ana}", true, 512, JSON_THROW_ON_ERROR);
} catch (JsonException $e) {
    echo "JSON invalid: " . $e->getMessage();
}

Rezultat

JSON invalid: Syntax error

Greșeli frecvente

  • Uiți al doilea parametru true și încerci $date["nume"] pe un obiect. Primești eroarea Cannot use object of type stdClass as array.

Comenzi înrudite

  • json_encode: Transformă un tablou sau obiect PHP în text JSON.
  • file_get_contents: Citește tot conținutul unui fișier (sau al unei adrese URL) într-un text.