Konwerter PHP na JSON
Wklej klasy, tablice lub obiekty PHP. Odbierz czysty JSON.
Co robi to narzędzie
Jeśli masz klasę PHP wypchaną typowanymi właściwościami i potrzebujesz JSON-owego payloadu na test, request do API albo fixture, klepanie tablicy ręcznie to kwadrans do bani. Wklej PHP tutaj i dostaniesz z powrotem poprawny JSON, w którym każda właściwość jest na swoim miejscu. Działa z jedną klasą, z plikiem pełnym encji Doctrine, z modelem Laravel Eloquent albo ze zwykłą tablicą asocjacyjną — efekt ten sam, na wyjściu poprawny JSON.
Konwerter robi to samo, co json_encode() w runtime. Typowane właściwości (PHP 7.4+) i readonly (PHP 8.1+) wychodzą jako zwykłe klucze JSON. Inty, floaty, booleany i stringi mapują się jeden do jednego. null staje się JSON-owym null. Zagnieżdżone instancje obiektów rozwijają się do zagnieżdżonych obiektów JSON. Tablice asocjacyjne lądują jako obiekty JSON; tablice z kolejnymi indeksami liczbowymi jako tablice JSON — ten sam podział, który stosuje json_encode.
Nowoczesne ficzery PHP też obsłużone. Backed enumy serializują się do swojej wartości backującej (string albo int). DateTimeImmutable wychodzi jako string ISO-8601. Jeśli wkleisz kilka klas naraz — coś, co zwykle wyciągasz z Packagista — każda klasa top-level staje się osobnym kluczem w JSON-ie, a zagnieżdżone typy są rozwinięte. Metody, stałe i właściwości statyczne są pomijane; do wyjścia trafiają tylko dane instancji.
Jak tego użyć
Trzy kroki. Działa tak samo, czy wklejasz dziesięć linijek, czy cały plik Modelu.
Wklej swoje PHP (albo puść przykład)
Wrzuć swoje PHP do lewego edytora tak jak jest. Definicja klasy, nowa instancja, tablica asocjacyjna albo kilka klas — wszystko przechodzi. Kliknij Załaduj przykład, jeśli chcesz najpierw zobaczyć realny case.
Zostaw pełną składnię PHP — namespace'y, use, modyfikatory widoczności, atrybuty. Parser olewa boilerplate, którego nie potrzebuje.
Klik w Konwertuj
Kliknij zielony przycisk Konwertuj. Narzędzie czyta PHP, zachowuje każdą właściwość i klasę i buduje JSON w jednym przebiegu. Podczas pracy zobaczysz krótki wskaźnik ładowania.
Skopiuj JSON
Prawy panel zapełnia się wcięciowanym JSON-em. Skopiuj go prosto do ciała requestu HTTP, fixtury PHPUnit, pliku konfiga albo do dokumentacji API.
Kiedy to faktycznie ratuje tyłek
Budowanie payloadów do requestów API
Masz DTO CreateOrderRequest i potrzebujesz pasującego body JSON do Postmana, curla albo testu integracyjnego. Wklejasz klasę, masz payload.
Seedowanie Laravela lub Symfony
Zamień pakę linijek <code>new Product(...)</code> z factory na plik JSON-owego seeda pod database:seed albo loadery fixtur — koniec z klepaniem tablic na piechotę.
Utrzymywanie przykładów OpenAPI w zgodzie z rzeczywistością
Generuj przykłady JSON do swojej specyfikacji OpenAPI wprost ze swoich realnych DTO, żeby przykłady schematu były w synchronizacji z kodem.
Debugowanie outputu json_encode
Kiedy obiekt nie serializuje się tak, jak się spodziewasz, wklej go tutaj, zobacz czysty kształt — a potem porównaj z tym, co realnie wypluwa <code>json_encode()</code>.
Częste pytania
Obsługuje typowane i readonly właściwości z PHP 8?
Tak. Typowane właściwości, typy nullable (?string), modyfikatory readonly i promowane właściwości konstruktora — wszystko jest łapane. Type hint nie zmienia wartości JSON — po prostu mówi parserowi, czego się spodziewać.
A co z enumami?
Backed enumy serializują się do swojej wartości backującej (string albo int). Czyste enumy bez typu backującego wychodzą jako nazwa case'a. To zgodne ze standardowym zachowaniem json_encode dla BackedEnum.
Tablica asocjacyjna vs indeksowana — która staje się obiektem?
Ta sama reguła co w json_encode: sekwencyjna tablica od 0 staje się tablicą JSON; każda tablica z kluczami string (albo z niesekwencyjnymi kluczami całkowitoliczbowymi) staje się obiektem JSON.
Jak są serializowane DateTime i DateTimeImmutable?
Jako stringi ISO-8601, ten sam format, który dostajesz z $dt->format(DateTime::ATOM). Jeśli data ma strefę czasową, offset jest zachowany w wyjściu.
Mogę wkleić cały plik z modelami?
Spokojnie. Każda klasa top-level dostaje swój wpis w JSON-ie, zagnieżdżone obiekty rozwijają się naturalnie, a właściwości ustawiane w konstruktorze są uwzględniane. Private i protected też są emitowane — parser patrzy na kształt, nie na widoczność.
Czy mój kod jest zapisywany?
Twoje PHP jedzie na backend do konwersji i nie jest persystowane — nie logujemy payloadu. Dla wrażliwego kodu, rzuć okiem przed wklejeniem.
Inne narzędzia, które mogą się przydać
PHP na JSON to jeden kawałek układanki. Te grają z nim w parze: