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之间的相互转化
本文为崔凯原创文章,转载无需和我联系,但请注明来自冷暖自知一抹茶ckhttp://www.cksite.cn