当我们有json_encode时,为什么要使用CJSON编码

2022-08-30 14:58:37

我正在使用Yii为一个网站构建一个API。我知道有一个名为CJson的实用程序类,并且有一个名为encode的函数。

据我所知,可以在本机json_encode函数中自定义其他参数,例如JSON_NUMERIC_CHECK这非常有用。它创造

{
    "id": 17
}

而不是 Yii 的 CJSON 编码,这使得 '17' 成为字符串。

{
    "id": "17"
}

所以我的问题是,我是否有任何理由应该使用CJSON编码而不是内置的PHP函数json_encode?


答案 1

唯一我能想到的是最低php版本支持。

Yii 支持 php 5.1 作为最低版本,请参阅 Yii 安装页面。虽然json_encode/json_decode在 php 5.2 中引入。因此,这可能是Yii拥有CJson库的原因。


答案 2

这个问题已经很老了。我正在使用 Yii 1.4,PHP 5.4。

我发现的区别是“json_encode”仅编码类属性,而“CJSON::encode”仅使用@property注释对类文档中列出的属性进行编码...至少对于CActiveRecord来说,这是正确的。


推荐