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格式为
[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了
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论