【问题标题】:Encode unescaped JSON in Yii 1.x在 Yii 1.x 中编码未转义的 JSON
【发布时间】:2023-04-04 10:12:01
【问题描述】:

我需要从 PHP 数组生成 JSON,但不转义 / 字符(主要是非 URL)。

在纯 PHP 中,我可以做到 json_encode($results, JSON_UNESCAPED_SLASHES);(在 PHP 5.4.0+ 中)。

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

【问题讨论】:

  • 是否有您不想使用 json_encode 的具体原因?

标签: php json yii escaping encode


【解决方案1】:

如果您阅读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);
        }
    }
}

【讨论】:

  • 这当然是更专业的方式,但当我们看 KISS 时,我认为这有点矫枉过正,我认为我将继续使用 json_encode()! :]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-12
  • 1970-01-01
  • 2023-01-27
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
相关资源
最近更新 更多