前言:這次是給一款小程序提供接口時發現的
別的不多說,下面直接看出現問題的json數據
可以看到,這是一個大的json對象,是由多維數組組成,一般api接口提供的也是這種格式。
但是仔細看紅框中的內容,它居然是個數組格式的,而跟它同級的是對象格式的,並且只有這一個。
這就奇怪了,明明都是統一處理的,為何就這一條是數據呢?而因為這一條是數組格式,導致前端那邊解析失敗。
當時花了2分鍾思考,無果!
接着上百度大法,找到了點蛛絲馬跡
如果返回json格式的數據,當返回數據的為數組,且key為字符串時,json化后將返回jsonObject,但是如果是空數組,有可能返回的就是jsonArray,數據結構不一致導致端解析json失敗。
看到這里,我瞬間明白了,應該是我的數組中這條中可能存在空的數據,導致這條是數組格式。
下面就好辦了,進PHP官網查看json_encode參數,發現如下
解決方式如下
json_encode($arr, JSON_FORCE_OBJECT);
最后附上效果圖
雖然這個問題解決花費的時間不長,但是容易疏忽啊,時間一久再碰到估計又是懵逼狀態了,特此記錄 以供自己 溫故而知新
參考鏈接
https://blog.csdn.net/qq_21119513/article/details/80577436