fastjson中出现(syntax error, expect {, actual string, pos 0)错误原因分析
短信预约 -IT技能 免费直播动态提醒
最近在开发过程中遇见一个fastjson巨坑,错误截图如下:
com.alibaba.fastjson.JSONEXception: syntax erron,expect {, actual string, pos 0, fastjson-version 1.2.83at 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:naJat 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:naJat 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()来转换。
总结:
开发过程中踩坑是必然,记录下来,希望下次遇见这个问题的小伙伴可以避坑。
来源地址:https://blog.csdn.net/m0_50837402/article/details/129992046
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341