FastJson处理数据出现错误com.alibaba.fastjson.JSONExce。。。

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FastJson处理数据出现错误com.alibaba.fastjson.JSONExce。

⽤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了。

相关文档
最新文档