FastJson處理數據出現錯誤 com.alibaba.fastjson.JSONException: syntax error, expect {, actual error, pos 1
阿新 • • 發佈:2018-04-07
字符 bsp 要求 clip 註意 back 格式 iba tro
用ajax發送JSON數據,其中數據類型為List,出現com.alibaba.fastjson.JSONException: syntax error, expect {, actual error, pos 1這種類型的錯誤
一般是數據格式問題
首先我們必須清楚JSON的數據格式
JSON中,對象用{ }包圍,映射用“:”表示,集合或數組用[ ]包圍
比如一個Java類的JSON格式為
{
名稱1:值1,
名稱2:值2
}
一個List的JSON格式為
[ {名稱1:值,名稱2:值2}, {名稱1:值,名稱2:值2} ]
在這裏需要註意一個問題,在Map中使用“=”連接鍵值,而不是“:”,跟List是不一樣的
而且,必須在我們需要轉化的Java類中重寫toString方法,否則會自動調用默認的toString()方法,只能獲取到這樣一個字符串:“類名+@+hashCode”,而無法拿到內部數據
用eclipse自動生成的的toString()方法也是不符合JSON的格式要求的
自動生成的格式為
public String toString() {return "Test [itemlist=" + itemlist + ", address=" + address + ", total=" + total + "]"; }
必須修改為該格式
public String toString() { return "{\"itemlist\":\"" + itemlist + "\", \"address\":\"" + address + "\", \"total\":\"" + total + "\"}"; }
我們就能在後臺用 JSON.parseArray 方法獲取到我們需要的List了
FastJson處理數據出現錯誤 com.alibaba.fastjson.JSONException: syntax error, expect {, actual error, pos 1