PHP json_encode转换空数组为对象

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


        使用数据类型转换

$bar = array();  
$foo = (object)$bar;  
echo json_encode($foo);

        使用 ArrayObject

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

$jsonRet = json_encode($arr);
print_r($jsonRet);


输出结果:
{"jsonArray":["21","12","13"],"jsonObject":{}}

        空数组返回空对象

$arr = [
    'jsonArray' => [
        '21', '12', '13'
    ],
    'jsonObject' => new \ArrayObject(),
    'object' => new \stdclass(),
];

$jsonRet = json_encode($arr);
print_r($jsonRet);

输出结果:
{"jsonArray":["21","12","13"],"jsonObject":{},"object":{}}

        强制类型转化

(array) - 转换为 数组(array)
(object) - 转换为 对象(object)


        传送门:数组和对象、XML之间的相互转化

冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论