/** * 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 Sopha_Json_Decoder::decode()} for details. * @return mixed */ public static function decode($encodedValue, $objectDecodeType = Sopha_Json::TYPE_ARRAY) { if (function_exists('json_decode') && self::$useBuiltinEncoderDecoder !== true) { return json_decode($encodedValue, $objectDecodeType); } require_once 'Sopha/Json/Decoder.php'; return Sopha_Json_Decoder::decode($encodedValue, $objectDecodeType); }
public function testEncodeObject() { $actual = new Sopha_JsonTest_Object(); $encoded = Sopha_Json_Encoder::encode($actual); $decoded = Sopha_Json_Decoder::decode($encoded, Sopha_Json::TYPE_OBJECT); $this->assertTrue(isset($decoded->__className)); $this->assertEquals('Sopha_JsonTest_Object', $decoded->__className); $this->assertTrue(isset($decoded->foo)); $this->assertEquals('bar', $decoded->foo); $this->assertTrue(isset($decoded->bar)); $this->assertEquals('baz', $decoded->bar); $this->assertFalse(isset($decoded->_foo)); }