FastJson处理数据出现错误 com.alibaba.fastjson.JSONException: syntax error, expect {, actual error, pos 1(示例代

Posted ZJP的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastJson处理数据出现错误 com.alibaba.fastjson.JSONException: syntax error, expect {, actual error, pos 1(示例代相关的知识,希望对你有一定的参考价值。

用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()方法,只能获取到这样一个字符串:“类名[email protected]+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(示例代的主要内容,如果未能解决你的问题,请参考以下文章

FastJSON使用笔记

java 大量数据处理问题记录

FastJson 解析错误问题查找

使用fastjson将listmap转换成json,出现$ref

fastjson反序列化漏洞学习

fastjson和jackson使用对比