2014-09-25 74 views
2

我需要从PHP数组中生成JSON,并且不会转义/个字符(主要是un URL)。在Yii 1.x中对未转义的JSON进行编码

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

有没有什么办法,我可以使用CJSON::encode();或其他任何Yii 1.x类来达到同样效果吗?

+1

有,为什么你不特定的原因,不想使用json_encode? – Asped 2014-09-25 12:53:01

回答

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); 
     } 
    } 
} 
+0

这当然是更专业的方式,但是当我们看着KISS时,我认为这是一种矫枉过正,我认为,我只会继续使用'json_encode()'! :] – trejder 2014-09-25 13:16:54

+1

啊足够公平;) – DarkMukke 2014-09-25 13:19:07