Json資料由於陣列下標未重置導致的格式問題

2021-07-11 19:40:31 字數 723 閱讀 4510

php有個陣列轉json的函式很好用,那就是json_encode,介面開發人員應該會常常用到,這裡會碰到乙個小問題,也就是當陣列中某一元素被unset後,最後的json資料會帶上下標,可以看下下面的例子:

$myarr = array('aaa','bbb','ccc');

var_dump(json_encode($myarr));

這時候螢幕列印的是下面的資訊:

string(19) "["aaa","bbb","ccc"]"
而此時如果你unset了其中乙個元素看看:

$myarr = array('aaa','bbb','ccc');

unset($myarr[0]);

var_dump(json_encode($myarr));

這時候列印出來的資訊就發生了變化:

string(21) ""
它自動給加上了下標1,2,這樣會導致介面的格式發生變化,讀取時由於格式不對,解析不到原本的資料。如何避免這種情況呢?很簡單,用乙個函式搞定,它就是array_values:

$myarr = array('aaa','bbb','ccc');

unset($myarr[0]);

var_dump(json_encode(array_values($myarr)));

這樣再看列印的結果就是原來的格式:

string(13) "["bbb","ccc"]"

獲取陣列形式的json資料

我將如下格式的json資料稱為陣列形式的json資料 以中括號開始和結束 我們在前兩篇博文中講了普通json資料的獲取以及解析的辦法,這裡的json如何解析呢。首先建立類pm,包括相應的成員。獲取json的方法就不再贅述了,詳見 android中使用gson解析普通json資料 解析json之前,先...

Json資料陣列的前後端處理

前端資料 即資料格式為資料中有多個json資料 前端處理為 json stringify this params 將object陣列轉會為json形式 後端接受資料後 從request獲取json陣列 jsonarray params jsonarray.fromstring req.getpara...

PHP資料集構建JSON及新陣列

自己寫了個php結果集轉換成json格式的函式,可以直接呼叫 function recordtojson recordset jstr substr jstr,0,strlen jstr 1 jstr jstr.jstr substr jstr,0,strlen jstr 1 jstr jstr.r...