DF

クラス: 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 のような形式となります.

Tags

  • access : public

引数

array|int   $encodeOptions   encode() のカスタマイズオプション
array|int   $decodeOptions   decode() のカスタマイズオプション

decode

line 253

mixed decode(string $text)

指定された JSON 文字列を値に変換します.

引数が空白文字列 (または null, false) の場合は null を返します.

Tags

  • return : 変換結果
  • access : public

引数

string   $text   変換対象の JSON 文字列

定義

Peach_DF_Codec::decode()
指定された文字列を複合し, 別のデータ形式に変換します.

encode

line 274

string encode(mixed $var)

指定された値を JSON 文字列に変換します.

Tags

  • return : JSON 文字列
  • access : public

引数

mixed   $var   変換対象の値

定義

Peach_DF_Codec::encode()
指定された値を符号化し, 変換結果の文字列を返します.

formatArrayValue

line 453

void formatArrayValue( $value)

Tags

  • access : public

引数

   $value  

formatObjectValue

line 480

void formatObjectValue( $key, $value)

Tags

  • access : public

引数

   $key  
   $value  

getDecodeOption

line 240

bool getDecodeOption(int $code)

指定されたデコード用オプションが ON かどうかを調べます.

Tags

  • return : 指定されたオプションが ON の場合は true, それ以外は false
  • access : public

引数

int   $code   オプション (定義されている定数)

getEncodeOption

line 229

bool getEncodeOption(int $code)

指定されたエンコード用オプションが ON かどうかを調べます.

Tags

  • return : 指定されたオプションが ON の場合は true, それ以外は false
  • access : public

引数

int   $code   オプション (定義されている定数)