json_encode
string json_encode ( mixed
value[,int options = 0 [, int $depth = 512 ]]
其中有2個比較常用到的參數:
- JSON_FORCE_OBJECT
- JSON_UNESCAPED_UNICODE
- ….
這兩個可選項使用時,只能選其中一個。可有時候我們同時需要這兩個參數作用的結果怎麼辦呢?
$arr = array();
echo json_encode(
(object) $arr, JSON_UNESCAPED_UNICODE
);
但是遇到以下這種情況時怎麼辦呢?
$arr = array(
'0' => 'xxx',
'city' => '中國',
'2' => 'xxx',
'3' => array()
);
$arr['city'] = urlencode($arr['city']);
echo urldecode(json_encode($arr, JSON_FORCE_OBJECT));
以上辦法可以保證array()經json_encode之後也能得到{}而非[]
{"0":"xxx","city":"中國","2":"xxx","3":{}}