Treci la conținutul principal

Limba în care vorbesc API-urile

API-urile schimbă date sub formă de JSON — text de tipul {"id": 1, "name": "Ana"}. PHP traduce în ambele direcții cu două funcții încorporate: json_encode transformă o valoare în text JSON, json_decode transformă textul JSON înapoi în date PHP.

Tablourile asociative sunt purtătorul firesc: cheile tabloului devin cheile JSON, exact așa cum sunt scrise. Transmiterea lui true ca al doilea argument al lui json_decode cere tablouri la ieșire (în locul obiectelor) — exemplele de aici fac mereu asta.


De la tablou la JSON

json_encode produce JSON compact pentru mașini; flagul JSON_PRETTY_PRINT produce JSON lizibil pentru oameni și pentru jurnale. Eliminarea câmpurilor goale este decizia ta: filtrează-le din tablou înainte de codificare.

Codificare, compactă și lizibilă

Ana nu are e-mail, iar filtrul scoate complet câmpul gol din JSON-ul ei. Înregistrarea completă a lui Ben se afișează indentată.

Prompt
Scrie un script PHP care construiește un utilizator ca tablou asociativ, îi filtrează câmpurile goale și îl codifică compact cu json_encode, apoi codifică un utilizator complet cu flagul JSON_PRETTY_PRINT, afișând ambele rezultate JSON.
Ieșire: script PHP

De la JSON la date

json_decode analizează JSON-ul și îl transformă în tablouri. Cheile JSON necunoscute nu sunt eliminate — ele vin mai departe ca intrări suplimentare pe care codul tău le poate ignora liniștit; cheile lipsă sunt pur și simplu absente, așa că citește-le cu ?? și o valoare implicită. Un JSON greșit întoarce null, iar json_last_error_msg() îți spune de ce — verifică mereu înainte de a te încrede în rezultat.

Decodificarea și cheia suplimentară

JSON-ul poartă o cheie extra pe care codul nu a cerut-o niciodată — nicio eroare, ea apare pur și simplu în tabloul decodificat, așa cum arată lista de chei. Un JSON deteriorat, în schimb, întoarce null împreună cu un mesaj de eroare real.

Prompt
Scrie un script PHP care decodifică cu json_decode un șir de caractere JSON ce conține o cheie suplimentară necunoscută, afișând id-ul, numele și lista completă de chei, iar apoi încearcă să decodifice un JSON deteriorat și afișează mesajul dat de json_last_error_msg.
Ieșire: script PHP

Date imbricate

Datele reale trimise de API-uri se imbrică: o comandă poartă utilizatorul său și o listă de articole. Tablourile din tablouri se transpun automat în JSON — un tablou cu chei devine un obiect JSON, o listă devine un tablou JSON — fără tratare specială.

O comandă cu un utilizator în interior

Tabloul user imbricat devine un obiect JSON imbricat, lista items devine un tablou JSON — forma datelor PHP este forma JSON-ului.

Prompt
Scrie un script PHP cu o comandă sub formă de tablou asociativ care conține un id, o listă de nume de articole și un tablou user imbricat. Codifică-l cu json_encode și JSON_PRETTY_PRINT și afișează-l pentru a arăta obiectele și tablourile imbricate.
Ieșire: script PHP