src/Peach/DF/JsonCodec.php
public function encodeValue($var)
    {
        if ($var === null) {
            return "null";
        }
        if ($var === true) {
            return "true";
        }
        if ($var === false) {
            return "false";
        }
        if (is_float($var)) {
            return $this->encodeFloat($var);
        }
        if (is_integer($var)) {
            return strval($var);
        }
        if (is_string($var)) {
            return is_numeric($var) ? $this->encodeNumeric($var) : $this->encodeString($var);
        }
        if (is_array($var)) {
            return $this->checkKeySequence($var) ? $this->encodeArray($var) : $this->encodeObject($var);
        }
        if (is_object($var)) {
            $arr = (array) $var;
            return $this->encodeValue($arr);
        }
        
        return $this->encodeValue(Values::stringValue($var));
    }
public function encodeValue($var)
    {
        if ($var === null) {
            return "null";
        }
        if ($var === true) {
            return "true";
        }
        if ($var === false) {
            return "false";
        }
        if (is_float($var)) {
            return $this->encodeFloat($var);
        }
        if (is_integer($var)) {
            return strval($var);
        }
        if (is_string($var)) {
            return is_numeric($var) ? $this->encodeNumeric($var) : $this->encodeString($var);
        }
        if (is_array($var)) {
            return $this->checkKeySequence($var) ? $this->encodeArray($var) : $this->encodeObject($var);
        }
        if (is_object($var)) {
            $arr = (array) $var;
            return $this->encodeValue($arr);
        }
        
        return $this->encodeValue(Values::stringValue($var));
    }
encode() の本体の処理です.
指定された値がスカラー型 (null, 真偽値, 数値, 文字列), 配列, オブジェクトのいずれかにも該当しない場合,
文字列にキャストした結果をエンコードします.

@param  mixed  $var 変換対象の値
@return string      JSON 文字列
@ignore