預(yù)定義常量

下列常量由此擴(kuò)展定義,且僅在此擴(kuò)展編譯入 PHP 或在運(yùn)行時(shí)動(dòng)態(tài)載入時(shí)可用。

以下常量表示了 json_last_error() 函數(shù),或 JsonException 類中的 code 變量所返回的錯(cuò)誤類型。

JSON_ERROR_NONE (int)
沒(méi)有錯(cuò)誤發(fā)生。自 PHP 5.3.0 起生效。
JSON_ERROR_DEPTH (int)
到達(dá)了最大堆棧深度。自 PHP 5.3.0 起生效。
JSON_ERROR_STATE_MISMATCH (int)
出現(xiàn)了下溢(underflow)或者模式不匹配。自 PHP 5.3.0 起生效。
JSON_ERROR_CTRL_CHAR (int)
控制字符錯(cuò)誤,可能是編碼不對(duì)。自 PHP 5.3.0 起生效。
JSON_ERROR_SYNTAX (int)
語(yǔ)法錯(cuò)誤。自 PHP 5.3.0 起生效。
JSON_ERROR_UTF8 (int)
異常的 UTF-8 字符,也許是因?yàn)椴徽_的編碼。自 PHP 5.3.3 起生效。
JSON_ERROR_RECURSION (int)
傳遞給 json_encode() 函數(shù)的對(duì)象或數(shù)組包含了遞歸引用,導(dǎo)致無(wú)法被編碼。如果打開(kāi)了 JSON_PARTIAL_OUTPUT_ON_ERROR 選項(xiàng),則牽涉到遞歸引用的數(shù)據(jù)會(huì)轉(zhuǎn)換成 null 后返回。自 PHP 5.5.0 起生效。
JSON_ERROR_INF_OR_NAN (int)
傳遞給 json_encode() 函數(shù)的參數(shù)中包含了 NANINF,導(dǎo)致編碼出錯(cuò)。如果打開(kāi)了 JSON_PARTIAL_OUTPUT_ON_ERROR 選項(xiàng),則牽涉到對(duì)應(yīng)不可編碼的數(shù)字,會(huì)轉(zhuǎn)換成數(shù)字 0 后返回。自 PHP 5.5.0 起生效。
JSON_ERROR_UNSUPPORTED_TYPE (int)
傳遞了不支持的數(shù)據(jù)類型給 json_encode() 函數(shù),比如 資源(resource)。如果打開(kāi)了 JSON_PARTIAL_OUTPUT_ON_ERROR 選項(xiàng),則對(duì)于不支持的數(shù)據(jù)類型,會(huì)轉(zhuǎn)換成 null 后返回。自 PHP 5.5.0 起生效。
JSON_ERROR_INVALID_PROPERTY_NAME (int)
A key starting with \u0000 character was in the string passed to json_decode() when decoding a JSON object into a PHP object. Available since PHP 7.0.0.
JSON_ERROR_UTF16 (int)
Single unpaired UTF-16 surrogate in unicode escape contained in the JSON string passed to json_encode(). Available since PHP 7.0.0.

下面的常量可以和 json_decode() 的 form 選項(xiàng)結(jié)合使用。

JSON_BIGINT_AS_STRING (int)
將大數(shù)字編碼成原始字符原來(lái)的值。 自 PHP 5.4.0 起生效。
JSON_OBJECT_AS_ARRAY (int)
Decodes JSON objects as PHP array. This option can be added automatically by calling json_decode() with the second parameter equal to true. Available since PHP 5.4.0.

下面的常量可以和 json_encode() 的 form 選項(xiàng)結(jié)合使用。

JSON_HEX_TAG (int)
所有的 < 和 > 轉(zhuǎn)換成 \u003C 和 \u003E。 自 PHP 5.3.0 起生效。
JSON_HEX_AMP (int)
所有的 & 轉(zhuǎn)換成 \u0026。 自 PHP 5.3.0 起生效。
JSON_HEX_APOS (int)
所有的 ' 轉(zhuǎn)換成 \u0027。 自 PHP 5.3.0 起生效。
JSON_HEX_QUOT (int)
所有的 " 轉(zhuǎn)換成 \u0022。 自 PHP 5.3.0 起生效。
JSON_FORCE_OBJECT (int)
使一個(gè)非關(guān)聯(lián)數(shù)組輸出一個(gè)類(Object)而非數(shù)組。 在數(shù)組為空而接受者需要一個(gè)類(Object)的時(shí)候尤其有用。 自 PHP 5.3.0 起生效。
JSON_NUMERIC_CHECK (int)
將所有數(shù)字字符串編碼成數(shù)字(numbers)。 自 PHP 5.3.3 起生效。
JSON_PRETTY_PRINT (int)
用空白字符格式化返回的數(shù)據(jù)。 自 PHP 5.4.0 起生效。
JSON_UNESCAPED_SLASHES (int)
不要編碼 /。 自 PHP 5.4.0 起生效。
JSON_UNESCAPED_UNICODE (int)
以字面編碼多字節(jié) Unicode 字符(默認(rèn)是編碼成 \uXXXX)。 自 PHP 5.4.0 起生效。
JSON_PARTIAL_OUTPUT_ON_ERROR (int)
Substitute some unencodable values instead of failing. Available since PHP 5.5.0.
JSON_PRESERVE_ZERO_FRACTION (int)
Ensures that float values are always encoded as a float value. Available since PHP 5.6.6.
JSON_UNESCAPED_LINE_TERMINATORS (int)
The line terminators are kept unescaped when JSON_UNESCAPED_UNICODE is supplied. It uses the same behaviour as it was before PHP 7.1 without this constant. Available since PHP 7.1.0.

下面的常量可以和 json_decode()json_encode() 的 form 選項(xiàng)結(jié)合使用。

JSON_INVALID_UTF8_IGNORE (int)
Ignore invalid UTF-8 characters. Available as of PHP 7.2.0.
JSON_INVALID_UTF8_SUBSTITUTE (int)
Convert invalid UTF-8 characters to \0xfffd (Unicode Character 'REPLACEMENT CHARACTER') Available as of PHP 7.2.0.
JSON_THROW_ON_ERROR (int)
Throws JsonException if an error occurs instead of setting the global error state that is retrieved with json_last_error() and json_last_error_msg(). JSON_PARTIAL_OUTPUT_ON_ERROR takes precedence over JSON_THROW_ON_ERROR. Available as of PHP 7.3.0.