json_encode
json_encode(mixed $value, int $flags = 0, int $depth = 512): string|false
※空のオブジェクトをencodeする可能性がある場合は、JSON_FORCE_OBJECTを指定しておいた方が良い。
設定するflags | 内容 |
---|
JSON_FORCE_OBJECT | 非連想配列を使用した場合に、配列ではなくオブジェクトを出力します。 出力を受け取る側がオブジェクトを期待しており、配列が空っぽである場合などに特に便利です。 |
JSON_HEX_QUOT | すべての “ を \u0022 に変換します。 |
JSON_HEX_TAG | すべての < および > をそれぞれ \u003C および \u003E に変換します。 |
JSON_HEX_AMP | すべての & を \u0026 に変換します。 |
JSON_HEX_APOS | すべての ‘ を \u0027 に変換します。 |
JSON_INVALID_UTF8_IGNORE | 不正な UTF-8 の文字を無視します。 PHP 7.2.0 以降で使用可能です。 |
JSON_INVALID_UTF8_SUBSTITUTE | 不正な UTF-8 の文字を、\0xfffd に変換します。 (Unicode の ‘REPLACEMENT CHARACTER’) PHP 7.2.0 以降で使用可能です。 |
JSON_NUMERIC_CHECK | 数値形式の文字列を数値としてエンコードします。 |
JSON_PARTIAL_OUTPUT_ON_ERROR | エンコード不可能な値は代替値に置き換え、処理を続行します。 |
JSON_PRESERVE_ZERO_FRACTION | float 型の値を常に float 値としてエンコードするようにします。 |
JSON_PRETTY_PRINT | 返される結果の書式を、スペースを使って整えます。 |
JSON_UNESCAPED_LINE_TERMINATORS | JSON_UNESCAPED_UNICODE が指定されると、 行の終端をエスケープされないままにします。 PHP 7.1 より前のバージョンでは、 この定数がなくてもそういう振る舞いをしていました。 PHP 7.1.0 以降で使用可能です。 |
JSON_UNESCAPED_SLASHES | / をエスケープしません。 |
JSON_UNESCAPED_UNICODE | マルチバイト Unicode 文字をそのままの形式で扱います (デフォルトでは \uXXXX にエスケープします)。 |
JSON_THROW_ON_ERROR | エラーが起きた場合、 json_last_error() や json_last_error_msg() 関数で収集される、 グローバルなエラー状態を設定するかわりに、 JsonException をスローします。 JSON_PARTIAL_OUTPUT_ON_ERROR は JSON_THROW_ON_ERROR よりも優先します。 PHP 7.3.0 以降で使用可能です。 |
json_decode
json_decode(
string $json,
?bool $associative = null,
int $depth = 512,
int $flags = 0
): mixed
flags | 内容 |
---|
JSON_BIGINT_AS_STRING | 巨大な整数値を文字列としてデコードします。 |
JSON_INVALID_UTF8_IGNORE | 不正な UTF-8 の文字を無視します。 PHP 7.2.0 以降で使用可能です。 |
JSON_INVALID_UTF8_SUBSTITUTE | 不正な UTF-8 の文字を、\0xfffd に変換します。 (Unicode の ‘REPLACEMENT CHARACTER’) PHP 7.2.0 以降で使用可能です。 |
JSON_OBJECT_AS_ARRAY | JSON オブジェクトを PHP の配列としてデコードします。 このオプションは json_decode() の第二引数を true に設定して呼び出すことで、自動的に設定できます。 |
JSON_THROW_ON_ERROR | エラーが起きた場合、 json_last_error() や json_last_error_msg() 関数で収集される、 グローバルなエラー状態を設定するかわりに、 JsonException をスローします。 JSON_PARTIAL_OUTPUT_ON_ERROR は JSON_THROW_ON_ERROR よりも優先します。 PHP 7.3.0 以降で使用可能です。 |