如何解决com.alibaba.fastjson.JSONException: expect ‘[’, but string, pos 4148
后台返回的数据是Object类型的数据,需要把它转换成List< entity > 类型的
起初我是想通过JSON.toJSONString( )把Object 转化为Json字符串,然后在通过
JSONObject.parseArray()转化成List< entity >
List<EpmsMaterialsInfo> materialsInfos2=JSONObject.parseArray(str, EpmsMaterialsInfo.class);
然后报错
com.alibaba.fastjson.JSONException: expect '[', but string, pos 4148, line 1, column 4149"[{\"id\":null,\"createBy\":null,\"createTime\":null,\"updateBy\":null,\"updateTime\":null,\"sysOrgCode\":null,\"biz
后来看了下文档发现JSON.toJSONString则是将对象转化为Json字符串
JSON数据中,对象是用{ }包围,集合或数组用[ ]包围
比如一个Java类的JSON格式为
{ 名称1:值1,名称2:值2 }
一个List的JSON格式为
[ {名称1:值,名称2:值2},{名称1:值,名称2:值2} ]
解决方法
使用String进行了强制转换
String str= (String) Object类型的数据
List materialsInfos2=JSONObject.parseArray(str, EpmsMaterialsInfo.class);