在Yii 1.x中编码未转义的JSON

时间:2014-09-25 12:44:03

标签: php json yii escaping encode

我需要从PHP数组中生成JSON,并输出/个字符(大部分是非URL)。

在纯PHP中我只能json_encode($results, JSON_UNESCAPED_SLASHES);(在PHP 5.4.0 +中)。

有什么办法,我可以使用CJSON::encode();或任何其他Yii 1.x类来实现相同的目标吗?

1 个答案:

答案 0 :(得分:2)

如果您阅读CJSON的代码,您会看到它使用标准的php(如果可用于解码/编码功能)。不幸的是,由于Yii 1.x需要PHP 5.1,所以还没有达到5.4的速度。

我建议您通过自己扩展CJON来添加额外的功能,如下所示:

class MyJSON extends CJSON {
    public static function encode($var, $options = null, $depth = null)
    {
        if (function_exists('json_encode') && version_compare(PHP_VERSION, '5.5.0') >= 0) {
            return json_encode($var, $options, $depth);
        } elseif (function_exists('json_encode') && version_compare(PHP_VERSION, '5.3.0') >= 0) {
            return json_encode($var, $options);
        } else {
            return parent::encode($var);
        }
    }
}