クラス: Peach_DF_JsonCodec
定義: /Peach/DF/JsonCodec.php
JSON 形式の文字列を扱う Codec です.
このクラスは RFC 7159 の仕様に基いて JSON のデコード (JSON を値に変換) とエンコード (値を JSON に変換) を行います.
RFC 7159 によると JSON 文字列のエンコーディングは UTF-8, UTF-16, UTF-32 のいずれかであると定義されていますが, この実装は UTF-8 でエンコーディングされていることを前提とします. UTF-8 以外の文字列をデコードした場合はエラーとなります.
クラス定数 詳細
BIGINT_AS_STRING = 2
line 141
定数 JSON_BIGINT_AS_STRING に相当するオプションです.
巨大整数をデコードする際に, int の範囲に収まらない値を文字列に変換します. (デフォルトでは float 型となります)
FORCE_OBJECT = 16
line 81
定数 JSON_FORCE_OBJECT に相当するオプションです.
通常は array 形式でエンコードされる配列を object 形式でエンコードします. 具体的には以下の配列の出力に影響します.
- 空の配列
- 添字が 0 から始まる整数の連続 (0, 1, 2, ...) となっている配列
HEX_AMP = 2
line 53
定数 JSON_HEX_AMP に相当するオプションです.
文字 "&" を "\u0026" にエンコードします.
HEX_APOS = 4
line 61
定数 JSON_HEX_APOS に相当するオプションです.
文字 "'" を "\u0027" にエンコードします.
HEX_QUOT = 8
line 69
定数 JSON_HEX_QUOT に相当するオプションです.
文字 '"' を "\u0022" にエンコードします.
HEX_TAG = 1
line 45
定数 JSON_HEX_TAG に相当するオプションです.
文字 %x3c (LESS-THAN SIGN) および %x3e (GREATER-THAN SIGN) をそれぞれ "\u003C" および "\u003E" にエンコードします
NUMERIC_CHECK = 32
line 87
定数 JSON_NUMERIC_CHECK に相当するオプションです.
数値表現の文字列を数値としてエンコードします.
OBJECT_AS_ARRAY = 1
line 132
json_decode() の第 2 引数に相当する, このクラス独自のオプションです.
このオプションが ON の場合, object 形式の値をデコードする際に配列に変換します. (デフォルトでは stdClass オブジェクトとなります)
PRESERVE_ZERO_FRACTION = 1024
line 122
定数 JSON_PRESERVE_ZERO_FRACTION に相当するオプションです.
float 型の値を常に float 値としてエンコードします. このオプションが OFF の場合, 小数部が 0 の数値 (2.0 など) は 整数としてエンコードされます.
PRETTY_PRINT = 128
line 104
定数 JSON_PRETTY_PRINT に相当するオプションです.
object, array 形式の書式でエンコードする際に, 半角スペース 4 個でインデントして整形します.
UNESCAPED_SLASHES = 64
line 95
定数 JSON_UNESCAPED_SLASHES に相当するオプションです.
エンコードの際に "/" をエスケープしないようにします.
UNESCAPED_UNICODE = 256
line 112
定数 JSON_UNESCAPED_UNICODE に相当するオプションです.
エンコードの際にマルチバイト文字を UTF-8 文字として表現します.
メソッド 詳細
constructor __construct
line 175
Peach_DF_JsonCodec __construct([array|int $encodeOptions = null], [array|int $decodeOptions = null])
新しい JsonCodec を構築します.
引数に encode() および decode() の出力のカスタマイズオプションを指定することが出来ます. 引数は配列または整数を指定することが出来ます.
- 配列の場合: キーにオプション定数, 値に true または false を指定してください.
- 整数の場合: 各オプションのビットマスクを指定してください. 例えば Peach_DF_JsonCodec::HEX_TAG | Peach_DF_JsonCodec::HEX_AMP のような形式となります.
decode
line 253
mixed decode(string $text)
指定された JSON 文字列を値に変換します.
引数が空白文字列 (または null, false) の場合は null を返します.
encode
line 274
string encode(mixed $var)
指定された値を JSON 文字列に変換します.
formatArrayValue
line 453
void formatArrayValue( $value)
formatObjectValue
line 480
void formatObjectValue( $key, $value)
getDecodeOption
line 240
bool getDecodeOption(int $code)
指定されたデコード用オプションが ON かどうかを調べます.
getEncodeOption
line 229
bool getEncodeOption(int $code)
指定されたエンコード用オプションが ON かどうかを調べます.