Przejdź do treści

JSON na klasy PHP

Konwertuj przykład JSON na wpisaną klasy PHP z konstruktorem, fromArray i toArray.

Wejście
Wynik

JSON na klasy PHP

Wklej obiekt lub tablicę JSON, a to narzędzie wyznacza typ dla każdego pola, następnie generuje gotową klasy PHP: wpisane właściwości, konstruktor, statyczną fabryką fromArray() i metodę toArray() do konwersji obiektu z powrotem do zwykłej tablicy. Zagnieżdżone obiekty automatycznie stają się własnymi klasami, a identyczne kształty są ponownie używane zamiast duplikowania, więc ładunek z kilkoma podobnie strukturalnymi sekcjami nadal produkuje kompaktny plik.

Nazwa klasy i nazwa przestrzeni nazw nazwij klasę root i opcjonalnie zawiń ją w przestrzeni nazw PHP. Promowany konstruktor PHP 8 zapisuje właściwości bezpośrednio w podpisie konstruktora zamiast deklarowania ich osobno — wyłącz go dla klasycznego jawnego konstruktora. Generuj gettery i settery dodaje metody dostępu (isX() dla wartości boolowskich, getX()/setX() w inny sposób) zamiast bezpośredniego ujawniania właściwości. declare(strict_types=1) dodaje nagłówek ścisłego typu PHP, a komentarze Docblock adnotują każdą właściwość jej deducowanym typem. Pola pól decydują, czy lista jest wpisana jako zwykła tablica czy udokumentowana typem elementu, takim jak string[], ponieważ PHP nie ma generyki do tego w typie.

Pole widziane jako null lub brakujące z niektórych elementów tablicy obiektów jest generowane jako nullable — z bezpiecznym sprawdzeniem isset() gdy musi zbudować zagnieżdżony obiekt lub mapować listę, a w inny sposób z domyślnym null-coalescing. Klucz, który koliduje ze słowem kluczowym PHP lub zaczyna się cyfrą, jest przejściowy do prawidłowej nazwy właściwości, a każda wygenerowana właściwość zachowuje oryginalny klucz JSON jako klucz tablicy w fromArray() i toArray().

Wszystko działa lokalnie w przeglądarce — JSON, który wklejasz, który może zawierać rzeczywiste odpowiedzi API lub dane konfiguracyjne, nigdy nigdzie nie jest wysyłany. Skopiuj wygenerowaną klasy, pobierz ją jako plik .txt lub wyślij dane wyjściowe z powrotem do danych wejściowych w celu dalszego udoskonalenia.

Częste pytania

Którą wersję PHP generuje kod docelowy?
PHP 8.0 lub nowsza, ponieważ promowane właściwości konstruktora i typ mieszany to funkcje PHP 8. Wyłącz opcję promowanego konstruktora, jeśli potrzebujesz danych wyjściowych kompatybilnych z PHP 7.
Jak obsługiwane są zagnieżdżone obiekty?
Każdy odrębny kształt obiektu staje się własną klasą z własnymi metodami fromArray() i toArray(). Dwa pola o identycznym kształcie ponownie używają tej samej wygenerowanej klasy zamiast jej duplikowania.
Co się staje z polem, które czasami ma wartość null lub brakuje?
Jest generowana jako właściwość wpisana nullable. Skalary domyślnie mają null z operatorem null-coalescing; zagnieżdżone obiekty i listy obiektów używają sprawdzenia isset(), więc fromArray() nigdy nie wywoła metody na brakujących danych.
Czy mogę wygenerować wiele klas z jednego przykładu JSON?
Tak. Każdy zagnieżdżony obiekt w przykładzie tworzy własną klasy w tym samym pliku w kolejności zależności, więc plik jest gotowy do użycia.
Czy mój JSON jest gdzieś przesyłany?
Nie. Generowanie klas odbywa się całkowicie w przeglądarce — Twój JSON nigdy nie opuszcza Twojego urządzenia.