Why use CJSON encode when we have json_encode

后端 未结 4 386
不思量自难忘°
不思量自难忘° 2021-01-01 09:33

I am building an API for a website using Yii. I know that there is a utility class called CJson and has a function called encode.

As far as I know there are addition

相关标签:
4条回答
  • 2021-01-01 10:08

    In addition to @kuldeep.kamboj, I should say CJSON::encode will treat that 17 as an integer if you define the data type of the value like this:

    // PHP
    $toBeConverted = array('id' => (int) 17); // or (int) $myInteger
    
    $jsonString = \CJSON::encode($toBeConverted);    
    
    // $jsonString will be:
    {
        "id": 17
    }
    
    0 讨论(0)
  • 2021-01-01 10:14

    Only thing I can think minimum php version support.

    Yii support php 5.1 as minimum version See Yii Installation Page . While json_encode/json_decode introduced in php 5.2. So It can be a reason for Yii having a library for CJson.

    0 讨论(0)
  • 2021-01-01 10:20

    This question is old. I am working with Yii 1.4, PHP 5.4.

    The difference i found was 'json_encode' encodes only class properties, while as 'CJSON::encode' encodes only properties listed at the class documentation using @property annotation... This is true at least for CActiveRecord

    0 讨论(0)
  • 2021-01-01 10:23

    I realise this is an old topic, but wanted to add another reason.

    By doing all JSON encoding through a helper class like CJSON you can override default behavior. For example you can use it to add a token to prevent JSON hijacking.

    0 讨论(0)
提交回复
热议问题