1. 程式人生 > >json_decode轉換json資料為null

json_decode轉換json資料為null

經常使用json_decode()轉換json字串,一直都很順利,然而今天碰到了一個頭疼的問題,json字串轉換過之後一直為null
上網搜尋了下,可以使用json_last_error()函式來檢視json轉換最後發生的錯誤,json_last_error_msg()用來顯示最後發生的錯誤詳情。可以分別參考json_last_errorjson_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`
,可以將這些字元換為空,如:

json=strreplace("\x06","",json);

因為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實體轉jsonNULL不參加序列化的匯總

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# 物件轉JSONnull時不轉

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的方法