惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Blog — PlanetScale
Blog — PlanetScale
G
Google Developers Blog
Microsoft Security Blog
Microsoft Security Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Jina AI
Jina AI
雷峰网
雷峰网
T
Tailwind CSS Blog
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
博客园 - 司徒正美
I
InfoQ
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
小众软件
小众软件
U
Unit 42
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net

博客园 - strong

Mac电脑上传ZIP图片压缩包时垃圾文件清理问题解决 帮一个朋友解决https证书过期的问题 电脑开不了机了,最后一检查发现是硬盘烧坏了 CentOS 上安装 Docker(完整步骤) 老项目 Java EE + Spring MVC(非 Spring Boot)使用openfeign SpringBoot项目接入分布式任务调度平台xxl-job(2.0.2)说明 记录一次错误的使用当前时间new Date()引发的错误 PaaS和SaaS的区别是什么? 数据库链接失败错误ERROR com.alibaba.druid.pool.DruidDataSource - {dataSource-1} init error解决 WampServer3.0服务器端开启ssl认证后重启Apache失败,解决办法 用户中心 - 博客园 在SublimeText3中想使用快捷键调出插件ColorPicker不起作用办法解决 【转】wamp如何添加多个站点 在sublime text 3中编译javascript 如何在Axure RP 8.0 中打开页面指定的动态面板 打开Access时电脑出现蓝屏,错误编号0x00000116的问题解决 windows下解决mysql5中文乱码的问题 在控制台中输入msqyl一直报ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost'错误 eclipse 提示错误The method of type must override a superclass method 的解决办法
错误提示“com.alibaba.fastjson.JSONException: exepct '...
strong · 2023-02-26 · via 博客园 - strong

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、后记:

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