Indsæt PHP til venstre og klik på "Konvertér" — vi laver det om til JSONIndsæt PHP-kode

Hvad værktøjet gør

Har du en PHP-klasse fyldt med typede properties og skal du bruge en JSON-payload til en test, et API-kald eller en fixture, er det bøvlet at skrive arrayet i hånden. Indsæt PHP:en her, så får du gyldig JSON tilbage med hver property bevaret. Virker med en enkelt klasse, en fil med Doctrine-entities, en Laravel Eloquent-model eller et almindeligt associativt array — samme resultat, gyldig JSON ud.

Konverteren gør præcis det samme, som json_encode() gør ved runtime. Typede properties (PHP 7.4+) og readonly-properties (PHP 8.1+) kommer ud som helt almindelige JSON-nøgler. Integers, floats, booleans og strings mappes én til én. null bliver JSON-null. Nestede objektinstanser foldes ud til nestede JSON-objekter. Associative arrays bliver til JSON-objekter; numerisk indekserede arrays bliver til JSON-arrays — samme opdeling som json_encode laver.

Moderne PHP-features bliver også håndteret. Backed enums serialiseres til deres backing-værdi (string eller int). DateTimeImmutable kommer ud som en ISO-8601-streng. Indsætter du flere klasser på én gang — noget du typisk henter fra Packagist — bliver hver top-level-klasse sin egen nøgle i JSON:en, med nestede typer foldet ud. Metoder, konstanter og statiske properties springes over; kun instansdata ender i outputtet.

Sådan bruger du det

Tre trin. Virker ens, uanset om du indsætter ti linjer eller en hel Model-fil.

1

Indsæt din PHP (eller prøv eksemplet)

Smid din PHP i den venstre editor, som den er. En klassedefinition, en ny instans, et associativt array eller flere klasser — det hele går an. Klik på Indlæs eksempel, hvis du vil se et realistisk eksempel først.

Lad hele PHP-syntaksen stå — namespaces, use-statements, synlighedsmodifikatorer, attributes. Parseren ignorerer den boilerplate, den ikke har brug for.

2

Tryk på Konvertér

Klik på den grønne Konvertér-knap. Værktøjet læser PHP:en, bevarer hver property og klasse og bygger JSON:en i én gennemgang. Du ser en kort loading-indikator, mens det kører.

3

Kopiér JSON:en

Det højre panel fyldes med indrykket JSON. Kopiér det direkte ind i en HTTP-request body, en PHPUnit-fixture, en config-fil eller din API-dokumentation.

Hvornår det virkelig hjælper

Bygge payloads til API-requests

Du har en CreateOrderRequest-DTO og skal bruge den matchende JSON-body til Postman, curl eller en integrationstest. Indsæt klassen, få payloaden.

Seede Laravel eller Symfony

Lav en bunke <code>new Product(...)</code>-factory-linjer om til en JSON-seedfil til database:seed eller fixture-loaders — slut med håndlavede arrays.

Holde OpenAPI-eksempler ærlige

Generér JSON-eksempler til din OpenAPI-spec direkte ud fra dine rigtige DTO'er, så schema-eksemplerne holder sig i sync med koden.

Debugge json_encode-output

Når et objekt ikke serialiseres, som du venter, indsæt det her for at se den rene form — sammenlign derefter med, hvad <code>json_encode()</code> rent faktisk producerer.

Typiske spørgsmål

Klarer den PHP 8's typede og readonly-properties?

Ja. Typede properties, nullable typer (?string), readonly-modifikatorer og promoted constructor-properties bliver alle samlet op. Type-hinten ændrer ikke JSON-værdien — den fortæller bare parseren, hvad den skal forvente.

Hvad med enums?

Backed enums serialiseres til deres backing-værdi (string eller int). Rene enums uden backing-type kommer ud som case-navnet. Det matcher standardopførslen for json_encode på en BackedEnum.

Associativt array vs indekseret array — hvilket bliver et objekt?

Samme regel som json_encode: et 0-indekseret sekventielt array bliver et JSON-array; et array med string-nøgler (eller ikke-sekventielle heltalsnøgler) bliver et JSON-objekt.

Hvordan serialiseres DateTime og DateTimeImmutable?

Som ISO-8601-strenge, samme format, som du får fra $dt->format(DateTime::ATOM). Hvis din dato har en tidszone, bevares offseten i outputtet.

Kan jeg indsætte en hel models-fil?

Ja. Hver top-level-klasse bliver sin egen JSON-post, nestede objekter foldes naturligt ud, og properties, der sættes i constructoren, tages med. Private og protected properties kommer også ud — parseren kigger på form, ikke synlighed.

Bliver min kode gemt?

Din PHP sendes til backenden til konverteringen og gemmes ikke — vi logger ikke payloaden. Kig din kode igennem, inden du indsætter den, hvis den er følsom.

Andre værktøjer, du måske skal bruge

PHP til JSON er én brik. Disse passer godt sammen med det: