PHP json_encode轉換空數組為對象
阿新 • • 發佈:2018-10-22
force col ray pan 描述 bject sonar jsonarray 不一致
問題描述:
php返回json格式的數據,當返回數據的為數組,且key為字符串時,json化後將返回jsonObject,但是如果是空數組,有可能返回的就是jsonArray,數據結構不一致導致端解析json失敗。
方法一:
使用JSON_FORCE_OBJECT
$arr = []; $jsonRet = json_encode($arr, JSON_FORCE_OBJECT); print_r($jsonRet);
缺點:所有的數據都會變成jsonObject
$arr = [ ‘jsonArray‘ => [ ‘21‘, ‘12‘, ‘13‘ ], ‘jsonObject‘ => [] ]; $jsonRet = json_encode($arr,JSON_FORCE_OBJECT); print_r($jsonRet);
輸出:
{ "jsonArray": { "0": "21", "1": "12", "2": "13" }, "jsonObject": { } }
可以看到 原本jsonArray的也被jsonObject化了
方法二:(推薦)
使用 ArrayObject
$array = new \ArrayObject(); var_dump(json_encode($array,JSON_UNESCAPED_UNICODE));
輸出:
string‘{}‘ (length=2)
PHP json_encode轉換空數組為對象