預定義常量

下列常量由此擴展定義,且僅在此擴展編譯入 PHP 或在運行時動態(tài)載入時可用。

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

JSON_ERROR_NONE (int)
沒有錯誤發(fā)生。自 PHP 5.3.0 起生效。
JSON_ERROR_DEPTH (int)
到達了最大堆棧深度。自 PHP 5.3.0 起生效。
JSON_ERROR_STATE_MISMATCH (int)
出現(xiàn)了下溢(underflow)或者模式不匹配。自 PHP 5.3.0 起生效。
JSON_ERROR_CTRL_CHAR (int)
控制字符錯誤,可能是編碼不對。自 PHP 5.3.0 起生效。
JSON_ERROR_SYNTAX (int)
語法錯誤。自 PHP 5.3.0 起生效。
JSON_ERROR_UTF8 (int)
異常的 UTF-8 字符,也許是因為不正確的編碼。自 PHP 5.3.3 起生效。
JSON_ERROR_RECURSION (int)
傳遞給 json_encode() 函數(shù)的對象或數(shù)組包含了遞歸引用,導致無法被編碼。如果打開了 JSON_PARTIAL_OUTPUT_ON_ERROR 選項,則牽涉到遞歸引用的數(shù)據(jù)會轉換成 null 后返回。自 PHP 5.5.0 起生效。
JSON_ERROR_INF_OR_NAN (int)
傳遞給 json_encode() 函數(shù)的參數(shù)中包含了 NANINF,導致編碼出錯。如果打開了 JSON_PARTIAL_OUTPUT_ON_ERROR 選項,則牽涉到對應不可編碼的數(shù)字,會轉換成數(shù)字 0 后返回。自 PHP 5.5.0 起生效。
JSON_ERROR_UNSUPPORTED_TYPE (int)
傳遞了不支持的數(shù)據(jù)類型給 json_encode() 函數(shù),比如 資源(resource)。如果打開了 JSON_PARTIAL_OUTPUT_ON_ERROR 選項,則對于不支持的數(shù)據(jù)類型,會轉換成 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 選項結合使用。

JSON_BIGINT_AS_STRING (int)
將大數(shù)字編碼成原始字符原來的值。 自 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 選項結合使用。

JSON_HEX_TAG (int)
所有的 < 和 > 轉換成 \u003C 和 \u003E。 自 PHP 5.3.0 起生效。
JSON_HEX_AMP (int)
所有的 & 轉換成 \u0026。 自 PHP 5.3.0 起生效。
JSON_HEX_APOS (int)
所有的 ' 轉換成 \u0027。 自 PHP 5.3.0 起生效。
JSON_HEX_QUOT (int)
所有的 " 轉換成 \u0022。 自 PHP 5.3.0 起生效。
JSON_FORCE_OBJECT (int)
使一個非關聯(lián)數(shù)組輸出一個類(Object)而非數(shù)組。 在數(shù)組為空而接受者需要一個類(Object)的時候尤其有用。 自 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 字符(默認是編碼成 \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 選項結合使用。

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.