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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章