您好,登錄后才能下訂單哦!
小編給大家分享一下php空數(shù)組如何轉(zhuǎn)換成json對(duì)象,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
php空數(shù)組轉(zhuǎn)json對(duì)象的方法:1、使用“JSON_FORCE_OBJECT”轉(zhuǎn)json對(duì)象;2、使用數(shù)據(jù)類型轉(zhuǎn)換將空數(shù)組轉(zhuǎn)json對(duì)象;3、使用ArrayObject將空數(shù)組轉(zhuǎn)json對(duì)象。
PHP json_encode轉(zhuǎn)換空數(shù)組為對(duì)象
問題描述:
php在給端提供接口,比如PC和安卓,ios等,如果返回json格式的數(shù)據(jù),當(dāng)返回?cái)?shù)據(jù)的為數(shù)組,且key為字符串時(shí),json化后將返回jsonObject,但是如果是空數(shù)組,有可能返回的就是jsonArray,數(shù)據(jù)結(jié)構(gòu)不一致導(dǎo)致端解析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);
輸出:
[ ]
如何在數(shù)組為空時(shí)也是JsonObject呢?
方法一:
使用JSON_FORCE_OBJECT
$arr = []; $jsonRet = json_encode($arr, JSON_FORCE_OBJECT); print_r($jsonRet);
此法有一弊端,eg:
$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化了,局部的改變不能影響全局
方法二
使用數(shù)據(jù)類型轉(zhuǎn)換
$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": { } }
看完了這篇文章,相信你對(duì)“php空數(shù)組如何轉(zhuǎn)換成json對(duì)象”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。