Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Die folgenden Konstanten geben den Typ des Fehlers an, der von json_last_error() zurückgegeben wurde.

JSON_ERROR_NONE (integer)
Kein Fehler aufgetreten. Verfügbar seit PHP 5.3.0.
JSON_ERROR_DEPTH (integer)
Die maximale Stacktiefe wurde überschritten. Verfügbar seit PHP 5.3.0.
JSON_ERROR_STATE_MISMATCH (integer)
Tritt ein bei Unterlauf oder State-Mismatch. Verfügbar seit PHP 5.3.0.
JSON_ERROR_CTRL_CHAR (integer)
Steuerzeichenfehler, möglicherweise unkorrekt kodiert. Verfügbar seit PHP 5.3.0.
JSON_ERROR_SYNTAX (integer)
Syntaxfehler. Verfügbar seit PHP 5.3.0.
JSON_ERROR_UTF8 (integer)
Ungültige UTF-8 Zeichen, eventuall falsch kodiert. Verfügbar seit PHP 5.3.3.
JSON_ERROR_RECURSION (integer)

Das an json_encode() übergebene Objekt oder Array enthält rekursive Referenzen und kann nicht kodiert werden. Wenn die JSON_PARTIAL_OUTPUT_ON_ERROR Option übergeben wurde, wird NULL an Stelle der rekursiven Referenz kodiert.

Diese Konstante ist verfügbar seit PHP 5.5.0.

JSON_ERROR_INF_OR_NAN (integer)

Der an json_encode() übergebene Wert enthält entweder NAN oder INF. Wenn die JSON_PARTIAL_OUTPUT_ON_ERROR Option übergeben wurde, wird 0 an Stelle dieser speziellen Zahlen kodiert.

Diese Konstante ist verfügbar seit PHP 5.5.0.

JSON_ERROR_UNSUPPORTED_TYPE (integer)

Der an json_encode() übergebene Wert enthält einen nicht unterstützten Typ, beispielweise resource. Wenn die JSON_PARTIAL_OUTPUT_ON_ERROR Option übergeben wurde, wird NULL an Stelle des nicht unterstützten Wertes kodiert.

Diese Konstante ist verfügbar seit PHP 5.5.0.

Die folgenden Konstanten können kombiniert (verodert) werden, um Optionen für json_encode() zu bilden.

JSON_HEX_TAG (integer)
Alle < und > werden zu \u003C und \u003E konvertiert. Verfügbar seit PHP 5.3.0.
JSON_HEX_AMP (integer)
Alle &s werden zu \u0026 konvertiert. Verfügbar seit PHP 5.3.0.
JSON_HEX_APOS (integer)
Alle ' werden zu \u0027 konvertiert. Verfügbar seit PHP 5.3.0.
JSON_HEX_QUOT (integer)
Alle " werden zu \u0022 konvertiert. Verfügbar seit PHP 5.3.0.
JSON_FORCE_OBJECT (integer)
Gibt ein Objekt bevorzugt als Array aus, wenn ein nichtassoziatives Array Array verwendet wird. Besonders nützlich, wenn der Empfänger der Ausgabe ein Objekt erwartet und das Array leer ist. Verfügbar seit PHP 5.3.0.
JSON_NUMERIC_CHECK (integer)
Kodiert numerische Zeichenketten als Zahlen. Verfügbar seit PHP 5.3.3.
JSON_BIGINT_AS_STRING (integer)
Kodiert große Zahlen als ihre originale Zeichenkette. Verfügbar seit PHP 5.4.0.
JSON_PRETTY_PRINT (integer)
Nutzt Whitespace um die zurückgegebenen Daten zu formatieren. Verfügbar seit PHP 5.4.0.
JSON_UNESCAPED_SLASHES (integer)
Escape / nicht. Verfügbar seit PHP 5.4.0.
JSON_UNESCAPED_UNICODE (integer)
Kodiere Unicode Zeichen, welche aus mehreren Bytes bestehen, direkt (standardmäßig werden \uXXXX Escapes genutzt). Verfügbar seit PHP 5.4.0.
JSON_PRESERVE_ZERO_FRACTION (integer)
Stellt sicher, dass float Werte immer als Fließkomma-Werte kodiert werden. Verfügbar seit PHP 5.6.6.
add a note add a note

User Contributed Notes 4 notes

up
28
Yzmir Ramirez
9 months ago
If you curious of the numeric values of the constants, as of JSON 1.2.1, the constants have the following values (not that you should use the numbers directly):

JSON_HEX_TAG => 1
JSON_HEX_AMP => 2
JSON_HEX_APOS => 4
JSON_HEX_QUOT => 8
JSON_FORCE_OBJECT => 16
JSON_NUMERIC_CHECK => 32
JSON_UNESCAPED_SLASHES => 64
JSON_PRETTY_PRINT => 128
JSON_UNESCAPED_UNICODE => 256

JSON_ERROR_DEPTH => 1
JSON_ERROR_STATE_MISMATCH => 2
JSON_ERROR_CTRL_CHAR => 3

JSON_ERROR_SYNTAX => 4

JSON_ERROR_UTF8 => 5
JSON_OBJECT_AS_ARRAY => 1

JSON_BIGINT_AS_STRING => 2
up
4
on5wis at mac dot com
2 months ago
since json_encode expects a UTF-8 string there is no need to encode the € symbol.

I suggest you try to echo : json_encode('€');
It gives: "\u20ac"
I'm running PHP 5.6.5 on the CLI, on MacOS X 10.10
up
-1
Anonymous
21 days ago
I am working with "Marathi Language Data" and I found that when I encoded Marathi data to json using json_encode it returned me unicode values of each character like below:

Program :

<?php
$ar
= array("word" => "धाडस");
echo
json_encode($ar);
?>

Output of program is :

{"word":"\u0927\u093e\u0921\u0938"}

This is not expected output because what I need is output as

{"word":"धाडस"}

So I used following code:

<?php
$ar
= array("word" => "धाडस");
echo
json_encode($ar, JSON_UNESCAPED_UNICODE);
?>

And I got the required output as :

{"word":"धाडस"}
up
-8
jgarviahonrado at yahoo dot es
2 months ago
When decoding the euro symbol (€) as below:

json_encode(utf8_encode('€')

json_encode provides the UTF-8 code \u0080, but it would be really interesting to get the \u20AC one.

Maybe a new option could be added to get the current code or the \u20AC one.
To Top