您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何解決php服務端從app端返回的json解析為null的問題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何解決php服務端從app端返回的json解析為null的問題”吧!
從APP端或從其他頁面post,get過來的數據一般因為數組形式。因為數組形式不易傳輸,所以一般都會轉json后再發送。本以為發送方json_encode(),接收方json_decode(),就解決的問題,結果發現,json_decode()后是NULL。
一般會反應是少了一個參數“true”,但是回去看就是 json_decode($data,true); 那怎么還會是NULL呢?難道是編碼,不會啊,接收后直接打印是一個完整json字符串的形式,在網上json解析網站,也是可以正常解析的。
那這是怎么回事呢? 其實是編碼轉譯的問題。
可以用json_last_error_msg();定位問題
用下面的方法可以實現正確解析。
$data = stripslashes(html_entity_decode($info)); //$info是傳遞過來的json字符串
$data = json_decode($data,TRUE);
這時候$data就是解析后的數組了!
html_entity_decode() 函數的作用是把 HTML 實體轉換為字符。
stripslashes() 函數的作用是刪除反斜杠。
也可以用這幾種方法:
解決方式一:
htmlspecialchars_decode($str);
解決方式二:
function removeBOM($str) {
if (0 === strpos(bin2hex($str), 'efbbbf')) {
return substr($data, 3);
}
return $data;
}
removeBOM($str);
解決方式三:
stripslashes(decodeUnicode($str));
感謝各位的閱讀,以上就是“如何解決php服務端從app端返回的json解析為null的問題”的內容了,經過本文的學習后,相信大家對如何解決php服務端從app端返回的json解析為null的問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。