Start · Sprachen · PHP · Referenz · json_encode

json_encode

Funktion

Wandelt einen PHP-Wert (Array, Objekt, Skalar) in einen JSON-String um.

seit PHP 5.2.0 Kategorie: json

Signatur

json_encode(mixed $value, int $flags = 0, int $depth = 512): string|false

Beschreibung

json_encode() serialisiert PHP-Datenstrukturen nach JSON. Assoziative Arrays werden zu JSON-Objekten, indizierte Arrays zu JSON-Arrays. Objekte werden anhand ihrer public Properties serialisiert — oder wenn sie JsonSerializable implementieren, über die eigene jsonSerialize()-Methode.

Nutze immer JSON_THROW_ON_ERROR statt still false bei Fehlern zurückzugeben. Und JSON_UNESCAPED_UNICODE, damit Umlaute und Emojis nicht als \\u00e4 escaped werden.

Parameter

Name Typ Default Beschreibung
$value Pflicht mixed Der zu serialisierende Wert. Beliebiger Typ außer resource.
$flags int 0 Bitmaske. Häufig: JSON_PRETTY_PRINT, JSON_UNESCAPED_UNICODE, JSON_UNESCAPED_SLASHES, JSON_THROW_ON_ERROR.
$depth int 512 Maximale Verschachtelungstiefe.

Rückgabewert

Typ
string|false
Beschreibung
JSON-String bei Erfolg. Ohne JSON_THROW_ON_ERROR: false bei Fehlern.

Beispiele

Assoziatives Array als JSON

<?php

$data = ['name' => 'Anna', 'roles' => ['admin', 'editor']];
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);
{"name":"Anna","roles":["admin","editor"]}

Pretty-Print mit Umlauten

<?php

$data = ['stadt' => 'München', 'einwohner' => 1_488_000];
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
{ "stadt": "München", "einwohner": 1488000 }

// Wichtig · Fallstricke

Zirkuläre Referenzen (Objekt A verweist auf B, B auf A) werfen einen Fehler. Vor dem Encoding auflösen — z. B. mit einer toArray()-Methode auf deinen Models.

Siehe auch