错误提示“com.alibaba.fastjson.JSONException- exepct [, but string, pos 4, json”解决()

  本篇文章为你整理了错误提示“com.alibaba.fastjson.JSONException: exepct '[', but string, pos 4, json”解决()的详细内容,包含有 错误提示“com.alibaba.fastjson.JSONException: exepct '[', but string, pos 4, json”解决,希望能帮助你了解 错误提示“com.alibaba.fastjson.JSONException: exepct '[', but string, pos 4, json”解决。

  如果,感到此时的自己很辛苦,告诉自己:容易走的都是下坡路,坚持住,因为你正在走上坡路!!!

  
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、原始代码:

  

List AttributeServiceImpl.AttrValue attrValues = JSON.parseArray(
 s, AttributeServiceImpl.AttrValue.class);

 

  

  作用:就是把从数据库中取出来的json字符串解析成List对象。

  3、问题分析:

  1)网上有说使用:JSON.toJSON(s).toString() 转化一下,于是修改

  

JSON.parseArray(

 

   JSON.toJSON(s).toString(), AttributeServiceImpl.AttrValue.class);

 

  

 

 

   发现还是报错。

  2)直接定义变量试一下:

  

String s="[{\"attrId\":33,\"attrName\":\"粗跟\"},{\"attrId\":44,\"attrName\":\"厚底\"}]"

 

  JSON.parseArray(

   JSON.toJSON(s).toString(), AttributeServiceImpl.AttrValue.class);

 

   发现没有问题,可以运行,那就奇怪了。

  3)于是仔细看数据库表中的数据:

   终于发现问题,这个json字符串的前后,分别多了一个双引号

  

  

   于是把前后双引号去掉之后,再进行解析,问题解决。

  4、后记:

   小问题不大,有时候并不能一眼看出来,很是苦恼 ,需要耐心的找原因,当问题解决之后,才恍然大悟。

  以上就是错误提示“com.alibaba.fastjson.JSONException: exepct '[', but string, pos 4, json”解决()的详细内容,想要了解更多 错误提示“com.alibaba.fastjson.JSONException: exepct '[', but string, pos 4, json”解决的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: