|
<?php
|
|
/**
|
|
* Zend Framework
|
|
*
|
|
* LICENSE
|
|
*
|
|
* This source file is subject to the new BSD license that is bundled
|
|
* with this package in the file LICENSE.txt.
|
|
* It is also available through the world-wide-web at this URL:
|
|
* http://framework.zend.com/license/new-bsd
|
|
* If you did not receive a copy of the license and are unable to
|
|
* obtain it through the world-wide-web, please send an email
|
|
* to license@zend.com so we can send you a copy immediately.
|
|
*
|
|
* @category Zend
|
|
* @package Zend_Json
|
|
* @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
|
|
* @license http://framework.zend.com/license/new-bsd New BSD License
|
|
*/
|
|
|
|
|
|
/**
|
|
* Class for encoding to and decoding from JSON.
|
|
*
|
|
* @category Zend
|
|
* @package Zend_Json
|
|
* @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
|
|
* @license http://framework.zend.com/license/new-bsd New BSD License
|
|
*/
|
|
class Zend_Json
|
|
{
|
|
/**
|
|
* How objects should be encoded -- arrays or as StdClass. TYPE_ARRAY is 1
|
|
* so that it is a boolean true value, allowing it to be used with
|
|
* ext/json's functions.
|
|
*/
|
|
const TYPE_ARRAY = 1;
|
|
const TYPE_OBJECT = 0;
|
|
|
|
/**
|
|
* @var bool
|
|
*/
|
|
public static $useBuiltinEncoderDecoder = false;
|
|
|
|
/**
|
|
* Decodes the given $encodedValue string which is
|
|
* encoded in the JSON format
|
|
*
|
|
* Uses ext/json's json_decode if available.
|
|
*
|
|
* @param string $encodedValue Encoded in JSON format
|
|
* @param int $objectDecodeType Optional; flag indicating how to decode
|
|
* objects. See {@link ZJsonDecoder::decode()} for details.
|
|
* @return mixed
|
|
*/
|
|
public static function decode($encodedValue, $objectDecodeType = Zend_Json::TYPE_ARRAY)
|
|
{
|
|
if (function_exists('json_decode') && self::$useBuiltinEncoderDecoder !== true) {
|
|
return json_decode($encodedValue, $objectDecodeType);
|
|
}
|
|
|
|
require_once APPPATH.'libraries/vtwsclib/third-party/Zend/Json/Decoder.php';
|
|
return Zend_Json_Decoder::decode($encodedValue, $objectDecodeType);
|
|
}
|
|
|
|
|
|
/**
|
|
* Encode the mixed $valueToEncode into the JSON format
|
|
*
|
|
* Encodes using ext/json's json_encode() if available.
|
|
*
|
|
* NOTE: Object should not contain cycles; the JSON format
|
|
* does not allow object reference.
|
|
*
|
|
* NOTE: Only public variables will be encoded
|
|
*
|
|
* @param mixed $valueToEncode
|
|
* @param boolean $cycleCheck Optional; whether or not to check for object recursion; off by default
|
|
* @return string JSON encoded object
|
|
*/
|
|
public static function encode($valueToEncode, $cycleCheck = false)
|
|
{
|
|
if (function_exists('json_encode') && self::$useBuiltinEncoderDecoder !== true) {
|
|
return json_encode($valueToEncode);
|
|
}
|
|
|
|
require_once APPPATH.'labraries/vtwsclib/third-party/Zend/Json/Encoder.php';
|
|
return Zend_Json_Encoder::encode($valueToEncode, $cycleCheck);
|
|
}
|
|
}
|
|
|