PHP转换空数组为对象

发布日期:2020-04-19

php在给端提供接口,比如PC和安卓,ios等,如果返回json格式的数据,当返回数据的为数组,且key为字符串时,json化后将返回jsonObject,但是如果是空数组,有可能返回的就是jsonArray,数据结构不一致导致端解析json失败。

如:

$arr = [
    'id' => 123.,
    'name' => 'andrew',
];
 
$jsonRet = json_encode($arr);
 
print_r($jsonRet);

输出:

{
  "id": 123,
  "name": "andrew"
}

但是如果是:

$arr = [];
$jsonRet = json_encode($arr);

print_r($jsonRet);

输出:

[

]

 

解决方法是 使用 ArrayObject

$arr = [
    'jsonArray' => [
        '21', '12', '13'
    ],
    'jsonObject' => new \ArrayObject()
];
$jsonRet = json_encode($arr);
print_r($jsonRet);

输出

{
  "jsonArray": [
    "21",
    "12",
    "13"
  ],
  "jsonObject": {
    
  }
}