Overview

Namespaces

  • Peach
    • DF
    • DT
    • Http
      • Body
      • Header
    • Markup
    • Util

Classes

  • Base64Codec
  • CodecChain
  • JsonCodec
  • SerializationCodec
  • Utf8Codec

Interfaces

  • Codec
  • Overview
  • Namespace
  • Class

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
Namespace: Peach\DF
Located at Peach/DF/JsonCodec.php
Methods summary
public
# __construct( array|integer $encodeOptions = null, array|integer $decodeOptions = null )

新しい JsonCodec を構築します. 引数に encode() および decode() の出力のカスタマイズオプションを指定することが出来ます. 引数は配列または整数を指定することが出来ます.

新しい JsonCodec を構築します. 引数に encode() および decode() の出力のカスタマイズオプションを指定することが出来ます. 引数は配列または整数を指定することが出来ます.

  • 配列の場合: キーにオプション定数, 値に true または false を指定してください.
  • 整数の場合: 各オプションのビットマスクを指定してください. 例えば JsonCodec::HEX_TAG | JsonCodec::HEX_AMP のような形式となります.

Parameters

$encodeOptions
encode() のカスタマイズオプション
$decodeOptions
decode() のカスタマイズオプション
public boolean
# getEncodeOption( integer $code )

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

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

Parameters

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

Returns

boolean
指定されたオプションが ON の場合は true, それ以外は false
public boolean
# getDecodeOption( integer $code )

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

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

Parameters

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

Returns

boolean
指定されたオプションが ON の場合は true, それ以外は false
public mixed
# decode( string $text )

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

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

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

Parameters

$text
変換対象の JSON 文字列

Returns

mixed
変換結果

Implementation of

Peach\DF\Codec::decode()
public string
# encode( mixed $var )

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

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

Parameters

$var
変換対象の値

Returns

string
JSON 文字列

Implementation of

Peach\DF\Codec::encode()
Constants summary
integer HEX_TAG

定数 JSON_HEX_TAG に相当するオプションです. 文字 %x3c (LESS-THAN SIGN) および %x3e (GREATER-THAN SIGN) をそれぞれ "\u003C" および "\u003E" にエンコードします

定数 JSON_HEX_TAG に相当するオプションです. 文字 %x3c (LESS-THAN SIGN) および %x3e (GREATER-THAN SIGN) をそれぞれ "\u003C" および "\u003E" にエンコードします

# 1
integer HEX_AMP

定数 JSON_HEX_AMP に相当するオプションです. 文字 "&" を "\u0026" にエンコードします.

定数 JSON_HEX_AMP に相当するオプションです. 文字 "&" を "\u0026" にエンコードします.

# 2
integer HEX_APOS

定数 JSON_HEX_APOS に相当するオプションです. 文字 "'" を "\u0027" にエンコードします.

定数 JSON_HEX_APOS に相当するオプションです. 文字 "'" を "\u0027" にエンコードします.

# 4
integer HEX_QUOT

定数 JSON_HEX_QUOT に相当するオプションです. 文字 '"' を "\u0022" にエンコードします.

定数 JSON_HEX_QUOT に相当するオプションです. 文字 '"' を "\u0022" にエンコードします.

# 8
integer FORCE_OBJECT

定数 JSON_FORCE_OBJECT に相当するオプションです. 通常は array 形式でエンコードされる配列を object 形式でエンコードします. 具体的には以下の配列の出力に影響します.

定数 JSON_FORCE_OBJECT に相当するオプションです. 通常は array 形式でエンコードされる配列を object 形式でエンコードします. 具体的には以下の配列の出力に影響します.

  • 空の配列
  • 添字が 0 から始まる整数の連続 (0, 1, 2, ...) となっている配列
# 16
integer NUMERIC_CHECK

定数 JSON_NUMERIC_CHECK に相当するオプションです. 数値表現の文字列を数値としてエンコードします.

定数 JSON_NUMERIC_CHECK に相当するオプションです. 数値表現の文字列を数値としてエンコードします.

# 32
integer UNESCAPED_SLASHES

定数 JSON_UNESCAPED_SLASHES に相当するオプションです. エンコードの際に "/" をエスケープしないようにします.

定数 JSON_UNESCAPED_SLASHES に相当するオプションです. エンコードの際に "/" をエスケープしないようにします.

# 64
integer PRETTY_PRINT

定数 JSON_PRETTY_PRINT に相当するオプションです. object, array 形式の書式でエンコードする際に, 半角スペース 4 個でインデントして整形します.

定数 JSON_PRETTY_PRINT に相当するオプションです. object, array 形式の書式でエンコードする際に, 半角スペース 4 個でインデントして整形します.

# 128
integer UNESCAPED_UNICODE

定数 JSON_UNESCAPED_UNICODE に相当するオプションです. エンコードの際にマルチバイト文字を UTF-8 文字として表現します.

定数 JSON_UNESCAPED_UNICODE に相当するオプションです. エンコードの際にマルチバイト文字を UTF-8 文字として表現します.

# 256
integer PRESERVE_ZERO_FRACTION

定数 JSON_PRESERVE_ZERO_FRACTION に相当するオプションです. float 型の値を常に float 値としてエンコードします. このオプションが OFF の場合, 小数部が 0 の数値 (2.0 など) は 整数としてエンコードされます.

定数 JSON_PRESERVE_ZERO_FRACTION に相当するオプションです. float 型の値を常に float 値としてエンコードします. このオプションが OFF の場合, 小数部が 0 の数値 (2.0 など) は 整数としてエンコードされます.

# 1024
integer OBJECT_AS_ARRAY

json_decode() の第 2 引数に相当する, このクラス独自のオプションです. このオプションが ON の場合, object 形式の値をデコードする際に配列に変換します. (デフォルトでは stdClass オブジェクトとなります)

json_decode() の第 2 引数に相当する, このクラス独自のオプションです. このオプションが ON の場合, object 形式の値をデコードする際に配列に変換します. (デフォルトでは stdClass オブジェクトとなります)

# 1
integer BIGINT_AS_STRING

定数 JSON_BIGINT_AS_STRING に相当するオプションです. 巨大整数をデコードする際に, int の範囲に収まらない値を文字列に変換します. (デフォルトでは float 型となります)

定数 JSON_BIGINT_AS_STRING に相当するオプションです. 巨大整数をデコードする際に, int の範囲に収まらない値を文字列に変換します. (デフォルトでは float 型となります)

# 2
PEACH2 API documentation generated by ApiGen