從APP端或從其他頁面post,get過來的數據一般因為數組形式。因為數組形式不易傳輸,所以一般都會轉json后再發送。本以為發送方json_encode(),接收方json_decode(),就解決的問題,結果發現,json_decode()后是NULL。
一般會反應是少了一個參數“true”,但是回去看就是 json_decode($data,true); 那怎么還會是NULL呢?難道是編碼,不會啊,接收后直接打印是一個完整json字符串的形式,在網上json解析網站,也是可以正常解析的。
那這是怎么回事呢? 其實是編碼轉譯的問題。
用下面的方法可以實現正確解析。
1
2
|
$data
=
stripslashes
(html_entity_decode(
$info
));
//$info是傳遞過來的json字符串
$data
= json_decode(
$data
,TRUE);
|
這時候$data就是解析后的數組了!
html_entity_decode() 函數的作用是把 HTML 實體轉換為字符。
stripslashes() 函數的作用是刪除反斜杠。
以上這篇Json_decode 解析json字符串為NULL的解決方法(必看)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。