json_decode轉換json資料為null
經常使用json_decode()
轉換json
字串,一直都很順利,然而今天碰到了一個頭疼的問題,json
字串轉換過之後一直為null
。
上網搜尋了下,可以使用json_last_error()
函式來檢視json
轉換最後發生的錯誤,json_last_error_msg()
用來顯示最後發生的錯誤詳情。可以分別參考json_last_error和json_last_error_msg 。
一般錯誤都是為4
,意思是編碼錯誤
。因為json_decode()
只能夠轉換UTF-8
編碼的json
字串。
然而,我的錯誤顯示是3
, 控制字元錯誤,可能是編碼不對
。
嘗試過以下方法:
一: json 字串中反斜槓被轉義,使用 htmlspecialchars_decode() 函式處理;
二:在儲存 json 資料時使用 urlencode() 函式;(因為json資料不是在我這邊控制的,而且將得到的json儲存為文字再轉換是沒問題的,故沒驗證該方法)
三:將編碼轉換為UTF- 8,
$content = mb_detect_encoding($json, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5')); //檢視編碼
$json= mb_convert_encoding($content tent , "UTF-8", "GBK"); //將字串轉為UTF-8
四:在檔案頭加
五:查詢檔案中是否存在`bom`,如果存在也會出現該問題;
六:檢查json字串中是否多逗號;
七:檢查json中的名稱和值是否用的是雙引號,在json裡只能用雙引號表示字串,不要用單引號;
八:檢查json中的值是否有數字型別的,並且首位為零;(這個貌似沒問題)
九:字元的表示方式方式有很多種,但下面的都不支援 ,如:`\x06` ,可以將這些字元換為空,如:
因為php也支援這種十六進位制方式,所以可以用eval來達到轉義效果。
我的問題是因為使用了AES
進行加密、解密,所以可能這個過程中出現了問題,最後把不支援的字元去掉就OK了。這個還是在overstockflow
上找到的。
相關推薦
json_decode轉換json資料為null
經常使用json_decode()轉換json字串,一直都很順利,然而今天碰到了一個頭疼的問題,json字串轉換過之後一直為null。 上網搜尋了下,可以使用json_last_error()函式來檢
Gson轉換json資料為物件
可以通過Gson使用兩種方法,將json字串轉換為物件,以下面該段報文做測試 { "id": 84041462, "lastName": "小華", "age":32, "balance":666255.32, "hobbyDesc": {
json_decode解碼返回的資料為NULL
前言 又有一段時間沒有寫部落格了,第一是由於考試,寫部落格需要花費很多時間;第二是在開發中遇到的問題都是些小問題,很快就解決了。 關於json_decode函式,自己是再熟悉不過了,平時使用過程中也
jackson實體轉json時 為NULL不參加序列化的匯總
ica writev ber src 配置 () 全局 rgb 使用 首先加入依賴<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gso
Spring Boot @ResponseBody 轉換 JSON資料時Date 型別處理方法
引用處: https://blog.csdn.net/molashaonian/article/details/53025118 https://blog.csdn.net/henianyou/article/details/81945409 解析JSON的方式:
swift4.0 YYModel進行陣列轉模型時, 轉換的資料為nil
在進行陣列轉模型的操作時,資料轉化後為空, 換成使用oc建立的模型類之後,可以進行互轉, Swift 4 裡面繼承NSObject 不再預設在變數前 新增@objc; YYModelMeta中的_keyMappedCount獲取不到不帶@objc的變數,所以_keyMappedCount一直
前端XMLHttpRequest 傳送請求 FormData後臺接收不到資料,request.getParameter(),獲取資料為null
var form = new FormData(); form.append("fName",$("#fName").val()); form.append("fPrice",$("#fPrice").val()); form.appe
匯入資料庫的資料為null
問題描述:在做一個很簡單的ssm整合時,我用httpClient將資料從網站上爬取下來,然後存到資料庫中,資料在service層還有,但是匯入資料庫的時候就變成了資料庫預設值 問題解決之前問題解決之後 思考過程:因為service層還有資料,所以它也能傳到dao,因為mybatis使用mapper介面,無
mysql 多表管理 查詢的時候資料為null
1.1原sql查詢的時候left join的 某張表的資料為null SELECT t.bill_no billNo, t.item_code itemCode, t.status pickTicketStatus, a.status pickTick
簡單的Gson轉換json資料
Json與Java資料轉換 推薦使用:Gson。 使用理由:系統自帶的Json包需要自己通過屬性名一層一層地解析,十分繁瑣。而 Gson可以直接將Json格式的字串或文字轉為所對應的類,我們所需要
jackson 實體轉json屬性為NULL或者為空不參加序列化
1.實體上 @JsonInclude(Include.NON_NULL) //將該標記放在屬性上,如果該屬性為NULL則不參與序列化 //如果放在類上邊,那對這個類的全部屬性起作用 //Include.Include.ALWAYS 預設 //Include.NON_
spring-boot返回資料為null時返回空字串
在專案開發中,我們會遇到一些null值。如果不想讓返回資料有null值,而是返回空字串該怎麼辦捏。 So Easy!!! 我們做一下配置就好了。 1.Jackson null值處理:spring-boot是對Jackson預設支援的,所以有了web的依賴則不需要引入依
django自定義序列化返回處理資料為null情況
在介面返回資料時,如果資料庫表中查詢出來的某些欄位為null時,在前端需要多處理一些資料異常的情況。 django可以自定義序列化返回處理,將返回的內容限制和預處理再返回到前端。 1.未處理時返回 如圖上,有email、mobile這兩個欄位是有可以為空且預設值為null的
PHP JSON_DECODE/JSON_ENCODE中文內容為NULL或亂碼
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?> 輸出結果 obj
php 伺服器端解決json_decode()的bug 輸出為null, json_last_error函式為4語法錯誤
php 伺服器端解決json_decode() bug 問題: 問題描述: json_decode() 轉換json字串時輸出結果為 null,函式返回值為false 出現問題的分析: 1
c# 物件轉JSON當為null時不轉
using System; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace test {class MainClass{public static void Main (string[] args){
JSONObject將Json轉換成物件時無法轉換json資料欄位
首先自我檢討一下,因為自己的不認真,不細心,導致了前端時間的工作中,有很多bug出現,而解決過程中發現了這個問題,特意記錄下來,以端正日後工作態度! 需求是這樣的: 獲取一個json字串,將它解析入
springmvc返回json資料去除null值
package com.xilehang.kaola.po.orderConfirm; import com.fasterxml.jackson.databind.annotation.JsonSerialize; //轉json是排除null @SuppressWar
TreeMap get獲取資料為null
之前用treeMap進行排序,然後for迴圈keySet,get(Key)獲取到的值是null,後來找到一下方法測了一下,只有沒有註釋的那個方法是可以獲取到值得 public class Test {
Jquery轉換json物件為字串 JSON.stringify(jsonObject)[及其瀏覽器相容性問題]
jquery轉換json物件為字串 JSON.stringify(jsonObject) alert(JSON.stringify(jsonObject)); 但是在上面這個函式在IE6、7中都無法正常使用,IE6請使用下面方法 如下,用jquery的方法