&reftitle.constants; &extension.constants; 次の定数は、json_last_error が返したり、 JsonExceptioncode に格納されている エラーの型を表します。 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_errorjson_last_error_msg 関数で収集される、 グローバルなエラー状態を設定するかわりに、 JsonException をスローします。 JSON_PARTIAL_OUTPUT_ON_ERRORJSON_THROW_ON_ERROR よりも優先します。 PHP 7.3.0 以降で使用可能です。