PHP json_encode JSON_FORCE_OBJECT JSON_UNESCAPED_UNICODE

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":{}}
发布了31 篇原创文章 · 获赞 12 · 访问量 12万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章