fastjson中出现(syntax error, expect {, actual string, pos 0)错误原因分析

avatar
作者
猴君
阅读量:0

最近在开发过程中遇见一个fastjson巨坑,错误截图如下:
在这里插入图片描述

com.alibaba.fastjson.JSONEXception: syntax erron,expect {, actual string, pos 0, fastjson-version 1.2.83 at com.aLibaba.fastjson.parser.deserializer .JavaBeanDeserializer .deserialze(JavaBeanlesenializer.java:506) [fastjson-1.2.83.jar :na]at com.alibab.fastjson.parser .deserializer .JavaBeanDeserializer .parseRest(avaBeanbDesenialize .java:1624)[fastjson-1.2.83.jar :na)at com.alibaba.fastjson.panser .deserializer.FastjsonASNDeserializer_1_Task.deserialze(Unknown Sounce)~[na:naJ at com.aLibaba.fastjson.parser .deserializer.JavaBeanDeserializer.deserialze(JaveBeanDesenializer.java:287)[fastison-1.2.83.jan-naJat com.alibaba .fastjson . parser .DefaultJSONParser .parseObject(DefaultJSONParser .java:705)~[fastjson-1.2.83. jar:naJ at com.alibaba.fastjson.JSON.parseObject(JSON.java:394)~[fastjson-1.2.83.jar:na] at com.alibaba.fastjson.JSON.parseObject(JSON.java:298)~[fastjson-1.2.83.jar:na]at com.alibaba.fastjson.JSON.parseObject(JSON.java:588) ~[fastjson-1.2.83.jar:na] at com.itcast.cn.service.impl.RedisServiceImpl.poll(RedisSenviceImpl.java:33) ~[classes/:na] at com.itcast.cn.controller.RedisOperateString .operateStrings(RedisopenateStpinc.java:60)[classes/:na] c1 interna, calls> at javax.servlet.http.HttpServlet.service(HttpSenvlet. java:634)[toncat-embed-core-9.0.21.jan :9.0.21] c intennal ca) l> at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)~[tomcat-embed-core-9.0.21.jar:9.0.21] at org.apache .catalina.core .ApplicationFilterChain.internalDoFilter(ApplicationFiltenChain.java:231) w[tomcat-embed-c. re-9.0.21.jar: 9.0.21]  

错误原因:
这个错误是指json字符串的格式不正确,导致解析失败

   正常来说,我们用fastjson包内置的json解析方法是没问题的。例如JSON.toJsonString(),然后在转会对象用JSON.parseObject()这样没问题。但是,假设我们加入用redis操作字符串的set方法放入redis,在用get取出来的时候,就会出问题了。 

在这里插入图片描述
解决办法:

第一种就是用String类提供的替换方法,替换掉\和去掉前后的""。后在交给JSON.parseObject()转换
第二种就是调用JSON.parse()这个解析方法。解析后在交给JSON.parseObject()来转换。

总结:
开发过程中踩坑是必然,记录下来,希望下次遇见这个问题的小伙伴可以避坑。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!