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