Wklej PHP po lewej i kliknij "Konwertuj" — zamienimy to na JSONWklej kod PHP

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.

1

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.

2

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.

3

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: