php服務端從app端返回的json解析爲null 的問題解決

從APP端或從其餘頁面post,get過來的數據通常由於數組形式。由於數組形式不易傳輸,因此通常都會轉json後再發送。本覺得發送方json_encode(),接收方json_decode(),就解決的問題,結果發現,json_decode()後是NULL。php

通常會反應是少了一個參數「true」,可是回去看就是 json_decode($data,true); 那怎麼還會是NULL呢?難道是編碼,不會啊,接收後直接打印是一個完整json字符串的形式,在網上json解析網站,也是能夠正常解析的。html

那這是怎麼回事呢? 實際上是編碼轉譯的問題。json

能夠用json_last_error_msg();定位問題數組

用下面的方法能夠實現正確解析。函數

 
  1. $data = stripslashes(html_entity_decode($info)); //$info是傳遞過來的json字符串
  2. $data = json_decode($data,TRUE);
  3.  

這時候$data就是解析後的數組了!post

html_entity_decode() 函數的做用是把 HTML 實體轉換爲字符。
stripslashes() 函數的做用是刪除反斜槓。網站

 

也能夠用這幾種方法:編碼

解決方式一:spa

   htmlspecialchars_decode($str);code

解決方式二:

   function removeBOM($str) {
    if (0 === strpos(bin2hex($str), 'efbbbf')) {
        return substr($data, 3);
    }
    return $data;
}
removeBOM($str);

 

解決方式三:

   stripslashes(decodeUnicode($str));

 

以上這篇Json_decode 解析json字符串爲NULL的解決方法(必看)就是小編分享給你們的所有內容了,但願能給你們一個參考,也但願你們多多支持咱們。

本文標題: Json_decode 解析json字符串爲NULL的解決方法(必看)

本文地址: http://www.cppcns.com/wangluo/php/179559.html

相關文章
相關標籤/搜索