Sări la conținut
Complet local

JSON pentru clasă PHP

Convertește un exemplu JSON într-o clasă PHP tipizată cu constructor, fromArray și toArray.

Intrare
Ieșire

JSON pentru clasă PHP

Lipiți un obiect sau o matrice JSON și acest instrument deduce un tip pentru fiecare câmp, apoi generează o clasă PHP gata de utilizat: proprietăți tipizate, constructor, metoda de fabrică statică fromArray() și metoda toArray() pentru a converti obiectul înapoi într-o matrice simplă. Obiectele imbricate devin propriile lor clase automat, iar formele identice sunt reutilizate în loc să fie duplicate, deci o sarcină cu mai multe secțiuni structurate similar produce în continuare un fișier compact.

Numele clasei și numele spațiului de nume denumesc clasa rădăcină și, opțional, o înfășoară într-un spațiu de nume PHP. Constructorul promovat PHP 8 scrie proprietăți direct în semnătura constructorului în loc să le declare separat — dezactivați-l pentru un constructor clasic explicit. Generează getters și setters adaugă metode accessor (isX() pentru valori booleene, getX()/setX() altfel) în loc să expună proprietăți direct. declare(strict_types=1) adaugă antetul de tip strict al PHP, iar comentariile docblock adnotează fiecare proprietate cu tipul său dedus. Câmpurile matrice decid dacă o listă este tipizată ca o matrice simplă sau documentată cu tipul elementului acesteia, cum ar fi string[], deoarece PHP nu are generi pentru asta în indiciul de tip.

Un câmp văzut ca nul sau lipsă din unele elemente ale unei matrice de obiecte este generat ca anulabil — cu o verificare sigură isset() atunci când trebuie să construiască un obiect imbricat sau să mapeze o listă, și o valoare implicită null-coalescing în caz contrar. O cheie care se ciocnește cu un cuvânt-cheie PHP sau începe cu o cifră este redenumită la un nume de proprietate valabil, iar fiecare proprietate generată păstrează cheia JSON originală ca cheie de matrice în fromArray() și toArray().

Totul funcționează local în browserul dvs. — JSON-ul pe care îl lipiți, care poate include răspunsuri API reale sau date de configurare, nu este niciodată încărcat nicăieri. Copiați clasa generată, descărcați-o ca fișier .txt sau trimiteți rezultatul înapoi la intrare pentru a o rafina în continuare.

FAQ

Ce versiune de PHP vizează codul generat?
PHP 8.0 sau posterior, deoarece proprietățile constructorului promovat și tipul mixt sunt caracteristici PHP 8. Dezactivați opțiunea constructor-promovat dacă aveți nevoie de ieșire compatibilă cu PHP 7.
Cum sunt gestionate obiectele imbricate?
Fiecare formă de obiect distinctă devine propria sa clasă, cu propriile metode fromArray() și toArray(). Două câmpuri cu o formă identică reutilizează aceeași clasă generată în loc să o duplice.
Ce se întâmplă cu un câmp care este uneori nul sau lipsă?
Este generat ca o proprietate tipizată și anulabilă. Scalarele implicite la null cu operatorul null-coalescing; obiectele imbricate și listele de obiecte utilizează o verificare isset() pentru ca fromArray() să nu apeleze niciodată o metodă pe date lipsă.
Pot genera mai multe clase dintr-un singur exemplu JSON?
Da. Fiecare obiect imbricat din eșantion produce propria sa clasă în același fișier, în ordinea dependenței, astfel încât fișierul să fie gata de utilizare.
JSON-ul meu este încărcat în vreun loc?
Nu. Generarea de clase funcționează în întregime în browserul dvs. — JSON-ul dvs. nu părăsește niciodată dispozitivul dvs.