&reftitle.constants;
&extension.constants;
次の定数は、json_last_error が返したり、
JsonException の
code に格納されている
エラーの型を表します。
JSON_ERROR_NONE
(int)
エラーが発生しませんでした。
JSON_ERROR_DEPTH
(int)
スタックの深さが最大に達しました。
JSON_ERROR_STATE_MISMATCH
(int)
アンダーフローあるいはモードの不一致が発生しました。
JSON_ERROR_CTRL_CHAR
(int)
制御文字エラー。おそらくエンコードが間違っています。
JSON_ERROR_SYNTAX
(int)
構文エラー。
JSON_ERROR_UTF8
(int)
正しくエンコードされていないなど、不正な形式の UTF-8 文字。
JSON_ERROR_RECURSION
(int)
json_encode に渡した配列やオブジェクトに再帰参照が含まれており、エンコードできません。
JSON_PARTIAL_OUTPUT_ON_ERROR オプションを指定した場合は、
再帰参照の部分を &null; にエンコードします。
JSON_ERROR_INF_OR_NAN
(int)
json_encode に渡した値の中に
NAN
あるいは INF が含まれています。
JSON_PARTIAL_OUTPUT_ON_ERROR オプションを指定した場合は、
これらの特殊な数値を 0 にエンコードします。
JSON_ERROR_UNSUPPORTED_TYPE
(int)
json_encode が対応していない型、たとえば &resource; などが渡されました。
JSON_PARTIAL_OUTPUT_ON_ERROR オプションを指定した場合は、
これらを &null; にエンコードします。
JSON_ERROR_INVALID_PROPERTY_NAME
(int)
JSON オブジェクトを PHP オブジェクトにデコードする際、
json_decode に渡された文字列に、
\u0000 から始まるキーが含まれていました。
JSON_ERROR_UTF16
(int)
json_decode に渡された JSON 文字列の中に、
単一の、ペアになっていない UTF-16 のサロゲートコードポイントが含まれていました。
JSON_ERROR_NON_BACKED_ENUM
(int)
json_encode に渡される値のうち、
シリアライズできなかった Backed Enum でない値を含んでいることを示します。
PHP 8.1.0 以降で使用可能です。
次の定数は、
json_decode のオプションとして
組み合わせて使用します。
JSON_BIGINT_AS_STRING
(int)
巨大な整数値を文字列としてデコードします。
JSON_OBJECT_AS_ARRAY
(int)
JSON オブジェクトを PHP の配列としてデコードします。
このオプションは json_decode
の第二引数を &true; に設定して呼び出すことで、自動的に設定できます。
次の定数は、
json_encode のオプションとして組み合わせて使用します。
JSON_HEX_TAG
(int)
すべての < および > をそれぞれ \u003C および \u003E に変換します。
JSON_HEX_AMP
(int)
すべての & を \u0026 に変換します。
JSON_HEX_APOS
(int)
すべての ' を \u0027 に変換します。
JSON_HEX_QUOT
(int)
すべての " を \u0022 に変換します。
JSON_FORCE_OBJECT
(int)
非連想配列を使用した場合に、配列ではなくオブジェクトを出力します。
出力を受け取る側がオブジェクトを期待しており、配列が空っぽである場合などに特に便利です。
JSON_NUMERIC_CHECK
(int)
数値形式の文字列を数値としてエンコードします。
JSON_PRETTY_PRINT
(int)
返される結果の書式を、スペースを使って整えます。
JSON_UNESCAPED_SLASHES
(int)
/ をエスケープしません。
JSON_UNESCAPED_UNICODE
(int)
マルチバイト Unicode 文字をそのままの形式で扱います (デフォルトでは \uXXXX にエスケープします)。
JSON_PARTIAL_OUTPUT_ON_ERROR
(int)
エンコード不可能な値は代替値に置き換え、処理を続行します。
JSON_PRESERVE_ZERO_FRACTION
(int)
float 型の値を常に float 値としてエンコードするようにします。
JSON_UNESCAPED_LINE_TERMINATORS
(int)
JSON_UNESCAPED_UNICODE が指定されると、
行の終端をエスケープされないままにします。
PHP 7.1 より前のバージョンでは、
この定数がなくてもそういう振る舞いをしていました。
PHP 7.1.0 以降で使用可能です。
次の定数は、
json_decode および
json_encode のオプションとして組み合わせて使用します。
JSON_INVALID_UTF8_IGNORE
(int)
不正な UTF-8 の文字を無視します。
PHP 7.2.0 以降で使用可能です。
JSON_INVALID_UTF8_SUBSTITUTE
(int)
不正な UTF-8 の文字を、\0xfffd に変換します。
(Unicode の 'REPLACEMENT CHARACTER')
PHP 7.2.0 以降で使用可能です。
JSON_THROW_ON_ERROR
(int)
エラーが起きた場合、
json_last_error や
json_last_error_msg 関数で収集される、
グローバルなエラー状態を設定するかわりに、
JsonException をスローします。
JSON_PARTIAL_OUTPUT_ON_ERROR は
JSON_THROW_ON_ERROR よりも優先します。
PHP 7.3.0 以降で使用可能です。