错误提示“com.alibaba.fastjson.JSONException: exepct '[', but ...

打印 上一主题 下一主题

主题 663|帖子 663|积分 1989

1、错误提示信息如下:
com.alibaba.fastjson.JSONException: exepct '[', but string, pos 4, json : "[{"attrId":33,"attrName":"粗跟"},{"attrId":44,"attrName":"厚底"}]"
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:672)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:662)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:657)
at com.alibaba.fastjson.JSON.parseArray(JSON.java:514)
2、原始代码:
  1. List<AttributeServiceImpl.AttrValue> attrValues = JSON.parseArray(<br>    s, AttributeServiceImpl.AttrValue.class);
复制代码
 
作用:就是把从数据库中取出来的json字符串解析成List对象。
3、问题分析:
1)网上有说使用: JSON.toJSON(s).toString() 转化一下,于是修改 
  1. JSON.parseArray(
  2.     JSON.toJSON(s).toString(), AttributeServiceImpl.AttrValue.class);
复制代码
  1. [/code]    发现还是报错。
  2. 2)直接定义变量试一下:
  3. [code]String s="[{"attrId":33,"attrName":"粗跟"},{"attrId":44,"attrName":"厚底"}]"JSON.parseArray(
  4.     JSON.toJSON(s).toString(), AttributeServiceImpl.AttrValue.class);
复制代码
     发现没有问题,可以运行,那就奇怪了。
3)于是仔细看数据库表中的数据:
     终于发现问题,这个json字符串的前后,分别多了一个双引号
    
 
    于是把前后双引号去掉之后,再进行解析,问题解决。
4、后记:
     小问题不大,有时候并不能一眼看出来,很是苦恼 ,需要耐心的找原因,当问题解决之后,才恍然大悟。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表