Plak links PHP en klik op "Converteer" — wij maken er JSON vanPlak PHP-code

Wat deze tool doet

Heb je een PHP-klasse vol getypeerde properties en heb je een JSON-payload nodig voor een test, een API-call of een fixture? Dan is dat array met de hand uitschrijven een ramp. Plak je PHP hier en je krijgt geldige JSON terug met elke property intact. Werkt met één klasse, een bestand vol Doctrine-entities, een Laravel Eloquent-model of een kale associatieve array — zelfde resultaat, geldige JSON eruit.

De converter doet precies wat json_encode() at runtime doet. Getypeerde properties (PHP 7.4+) en readonly properties (PHP 8.1+) komen eruit als gewone JSON-keys. Integers, floats, booleans en strings mappen één op één. null wordt JSON null. Geneste object-instanties worden uitgeklapt tot geneste JSON-objecten. Associatieve arrays worden JSON-objecten; numeriek geïndexeerde arrays worden JSON-arrays — dezelfde splitsing die json_encode maakt.

Moderne PHP-features worden ook ondersteund. Backed enums serialiseren naar hun backing value (string of int). DateTimeImmutable komt eruit als ISO-8601 string. Als je meerdere klassen tegelijk plakt — iets wat je van Packagist plukt bijvoorbeeld — wordt elke top-level klasse zijn eigen key in de JSON, met geneste types uitgeklapt. Methodes, constanten en static properties worden overgeslagen; alleen instantiedata haalt de output.

Hoe je het gebruikt

Drie stappen. Werkt hetzelfde of je nou tien regels of een heel Model-bestand plakt.

1

Plak je PHP (of probeer het voorbeeld)

Zet je PHP zoals hij is in de linker editor. Een class-definitie, een nieuwe instantie, een associatieve array of meerdere klassen — allemaal prima. Klik op Voorbeeld laden als je eerst een realistisch voorbeeld wilt zien.

Houd de volledige PHP-syntax erin — namespaces, use-statements, visibility-modifiers, attributes. De parser negeert de boilerplate die hij niet nodig heeft.

2

Klik op Converteer

Klik op de groene Converteer-knop. De tool leest het PHP, behoudt elke property en klasse en bouwt de JSON in één pass. Je ziet een korte loading-indicator terwijl hij bezig is.

3

Kopieer de JSON

Het rechter paneel vult zich met geïndenteerde JSON. Plak hem direct in een HTTP-request body, een PHPUnit-fixture, een config-bestand of je API-docs.

Wanneer dit echt handig is

API-request payloads bouwen

Je hebt een CreateOrderRequest DTO en je hebt de bijbehorende JSON-body nodig voor Postman, curl of een integratietest. Klasse plakken, payload eruit.

Laravel of Symfony seeden

Zet een stapel <code>new Product(...)</code> factory-regels om in een JSON seed-bestand voor database:seed of fixture-loaders — geen handgemaakte arrays meer.

OpenAPI-voorbeelden eerlijk houden

Genereer JSON-voorbeelden voor je OpenAPI-spec direct vanuit je echte DTO's, zodat de schema-voorbeelden in sync blijven met je code.

json_encode output debuggen

Als een object niet serialiseert zoals je verwacht, plak hem hier om de schone vorm te zien — vergelijk dat dan met wat <code>json_encode()</code> daadwerkelijk produceert.

Veelgestelde vragen

Werkt het met PHP 8 getypeerde en readonly properties?

Ja. Getypeerde properties, nullable types (?string), readonly-modifiers en gepromoveerde constructor-properties worden allemaal opgepikt. De type-hint verandert de JSON-waarde niet — hij vertelt de parser alleen wat hij kan verwachten.

Hoe zit het met enums?

Backed enums serialiseren naar hun backing value (string of int). Pure enums zonder backing type komen eruit als de case-naam. Dat komt overeen met het standaard json_encode-gedrag op een BackedEnum.

Associatieve array vs geïndexeerde array — welke wordt een object?

Zelfde regel als json_encode: een 0-geïndexeerde sequentiële array wordt een JSON-array; elke array met string-keys (of niet-sequentiële integer-keys) wordt een JSON-object.

Hoe worden DateTime en DateTimeImmutable geserialiseerd?

Als ISO-8601 strings, hetzelfde formaat dat je krijgt van $dt->format(DateTime::ATOM). Als je datum een tijdzone bevat, blijft de offset in de output bewaard.

Kan ik een heel models-bestand plakken?

Ja. Elke top-level klasse wordt zijn eigen JSON-entry, geneste objecten klappen natuurlijk uit en properties die in de constructor worden gezet, worden meegenomen. Private en protected properties komen er ook uit — de parser kijkt naar de vorm, niet naar visibility.

Wordt mijn code opgeslagen?

Je PHP wordt naar de backend gestuurd voor de conversie en wordt niet bewaard — we loggen de payload niet. Voor gevoelige code: geef het even een check voor je plakt.

Andere tools die je kunnen helpen

PHP naar JSON is één puzzelstuk. Deze passen er goed bij: