PHP json_encode 轉換成空對象和空數組


對於以下對象

$foo = array(
  "bar1" => array(), 
  "bar2" => array() 
);

我想轉換成

{
  "bar1": {},
  "bar2": []
}

 

默認情況下用json_encode($foo)得到的是

{
  "bar1": [],
  "bar2": []
}

而加了JSON_FORCE_OBJECT參數的json_encode($foo,JSON_FORCE_OBJECT)得到的是

{
  "bar1": {},
  "bar2": {}
}

 

 

其實方法很簡單

使用 new stdClass() 或是使用強制轉換 (Object)array() 就行了.

$foo = array(
  "bar1" => new stdClass(), // Should be encoded as an object
  "bar2" => array() // Should be encoded as an array
);

echo json_encode($foo);
$foo = array(
  "bar1" => (object)array(), // Should be encoded as an object
  "bar2" => array() // Should be encoded as an array
);

echo json_encode($foo);
// {"bar1":{}, "bar2":[]}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM