2013-06-28 6 views
25

Buduję API dla strony internetowej za pomocą Yii. Wiem, że istnieje klasa narzędziowa o nazwie CJson i ma funkcję o nazwie kodowania.Dlaczego używać kodowania CJSON, gdy mamy json_encode

O ile mi wiadomo, istnieją dodatkowe parametry, które można dostosować w natywnej funkcji json_encode, takiej jak JSON_NUMERIC_CHECK, która jest naprawdę przydatna. To tworzy kodowanie

{ 
    "id": "17" 
} 

Więc moje pytanie brzmi, czy istnieje jakikolwiek powód, należy użyć CJSON kodowanie zamiast wbudowanej funkcji PHP json_encode?

+0

zapytania Bardzo dobry panie. –

Odpowiedz

10

Jedyne, co mogę myśleć o minimalnej obsłudze wersji php.

Yii obsługuje php 5.1 jako wersję minimalną Zobacz Yii Installation Page. Podczas gdy json_encode/json_decode wprowadzone w php 5.2. To może być powód, dla którego Yii ma bibliotekę dla CJsona.

4

To pytanie jest stare. Pracuję z Yii 1.4, PHP 5.4.

Różnica znalazłem „json_encode” koduje tylko właściwości klasy, natomiast jako „CJSON :: kodowania” koduje tylko właściwości podane w dokumentacji klasy używając @property adnotacji ... To prawda, przynajmniej dla CActiveRecord

0

Oprócz @ kuldeep.kamboj, powinienem powiedzieć CJSON::encode potraktuje tę 17 jako liczba całkowita, jeśli zdefiniować data type wartości takiego:

// PHP 
$toBeConverted = array('id' => (int) 17); // or (int) $myInteger 

$jsonString = \CJSON::encode($toBeConverted);  

// $jsonString will be: 
{ 
    "id": 17 
}