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":{}}