Class JsonCodec
JSON 形式の文字列を扱う Codec です. このクラスは RFC 7159 の仕様に基いて JSON のデコード (JSON を値に変換) とエンコード (値を JSON に変換) を行います.
RFC 7159 によると JSON 文字列のエンコーディングは UTF-8, UTF-16, UTF-32 のいずれかであると定義されていますが, この実装は UTF-8 でエンコーディングされていることを前提とします. UTF-8 以外の文字列をデコードした場合はエラーとなります.
- Peach\DF\JsonCodec implements Peach\DF\Codec
public
|
#
__construct( array|integer $encodeOptions = null, array|integer $decodeOptions = null )
新しい JsonCodec を構築します. 引数に encode() および decode() の出力のカスタマイズオプションを指定することが出来ます. 引数は配列または整数を指定することが出来ます. |
public
boolean
|
|
public
boolean
|
|
public
mixed
|
|
public
string
|
integer |
HEX_TAG
定数 JSON_HEX_TAG に相当するオプションです. 文字 %x3c (LESS-THAN SIGN) および %x3e (GREATER-THAN SIGN) をそれぞれ "\u003C" および "\u003E" にエンコードします |
#
1
|
integer |
HEX_AMP
定数 JSON_HEX_AMP に相当するオプションです. 文字 "&" を "\u0026" にエンコードします. |
#
2
|
integer |
HEX_APOS
定数 JSON_HEX_APOS に相当するオプションです. 文字 "'" を "\u0027" にエンコードします. |
#
4
|
integer |
HEX_QUOT
定数 JSON_HEX_QUOT に相当するオプションです. 文字 '"' を "\u0022" にエンコードします. |
#
8
|
integer |
FORCE_OBJECT
定数 JSON_FORCE_OBJECT に相当するオプションです. 通常は array 形式でエンコードされる配列を object 形式でエンコードします. 具体的には以下の配列の出力に影響します. |
#
16
|
integer |
NUMERIC_CHECK
定数 JSON_NUMERIC_CHECK に相当するオプションです. 数値表現の文字列を数値としてエンコードします. |
#
32
|
integer |
UNESCAPED_SLASHES
定数 JSON_UNESCAPED_SLASHES に相当するオプションです. エンコードの際に "/" をエスケープしないようにします. |
#
64
|
integer |
PRETTY_PRINT
定数 JSON_PRETTY_PRINT に相当するオプションです. object, array 形式の書式でエンコードする際に, 半角スペース 4 個でインデントして整形します. |
#
128
|
integer |
UNESCAPED_UNICODE
定数 JSON_UNESCAPED_UNICODE に相当するオプションです. エンコードの際にマルチバイト文字を UTF-8 文字として表現します. |
#
256
|
integer |
PRESERVE_ZERO_FRACTION
定数 JSON_PRESERVE_ZERO_FRACTION に相当するオプションです. float 型の値を常に float 値としてエンコードします. このオプションが OFF の場合, 小数部が 0 の数値 (2.0 など) は 整数としてエンコードされます. |
#
1024
|
integer |
OBJECT_AS_ARRAY
json_decode() の第 2 引数に相当する, このクラス独自のオプションです. このオプションが ON の場合, object 形式の値をデコードする際に配列に変換します. (デフォルトでは stdClass オブジェクトとなります) |
#
1
|
integer |
BIGINT_AS_STRING
定数 JSON_BIGINT_AS_STRING に相当するオプションです. 巨大整数をデコードする際に, int の範囲に収まらない値を文字列に変換します. (デフォルトでは float 型となります) |
#
2
|