错误提示“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 error, pos 1, json : %255B%257B%2522list%2522%253A%255B%257B%2522itemId%2522%253A1369331%252C%2522num%2522%253A2%257D%255D%257D%255
com.alibaba.fastjson.JSONException: exepct '[', but error, pos 1, json : %255B%257B%2522list%2522%25 ...
- fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string: "13:02:19"
问题:time类型数据插入不进mysql数据库:调试的时候报如下错误: Caused by: java.lang.NumberFormatException: For input string: &q ...
- com.aliyun.openservices.shade.com.alibaba.fastjson.JSONException: exepct '[', but {, pos 1, line 1, column 2
报错原因:你放的是一个非List的对象 却想取一个List对象出来 package test; import java.text.SimpleDateFormat; import java.util. ...
- com.alibaba.fastjson.JSONException: For input string: "8200-12-31"
https://www.cnblogs.com/mengjinluohua/p/5544987.html https://samebug.io/exceptions/458113/com.alibab ...
- redis通过json方案存取对象com.alibaba.fastjson.JSONException: syntax error, expect
问题描述: redis基于json方案存取对象时报错:com.alibaba.fastjson.JSONException: syntax error, expect com.alibaba.fast ...
- JSON parse error: default constructor not found. class java.time.YearMonth; nested exception is com.alibaba.fastjson.JSONException: default constructor not found. class java.time.YearMonth
java8新出的YearMonth可以方便的用来表示某个月.我的项目中使用springmvc来接收YearMonth类型的数据时发现 x-www-from-urlencoded 格式的数据可以使用&q ...
- com.alibaba.fastjson.JSONException: default constructor not found. class ……
1.json工具类 package com.hyzn.fw.util; import java.util.List; import java.util.Map; import com.alibaba. ...
- 做文件上传下载时报这个错com.alibaba.fastjson.JSONException: illegal identifier : \
::-exec-] DEBUG c.i.e.m.I.insertDataEmebeding - <== Updates: ::-exec-] ERROR c.i.e.c.CaseArchiveC ...
- Caused by: com.alibaba.fastjson.JSONException: syntax error, expect {, actual [, pos 0, fastjson-version 1.2
环境: vue.js 问题: 当添加评论时 重新查询数据刷新数据控制台异常Caused by: com.alibaba.fastjson.JSONException: syntax error, ex ...
- 解决使用Redis时配置 fastjson反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support
1.问题描述 在使用redis时,配置自定义序列化redisTemplate为FastJsonRedisSerializer . 1 /** 2 * 自定义redis序列化器 3 */ 4 @Sup ...
随机推荐
- angular打包出现JavaScript堆内存不足、启动也会内存溢出解决办法\increase-memory-limit' 不是内部或外部命令,
## 打包出现JavaScript堆内存不足 最近打包遇到这种报错 Ineffective mark-compacts near heap limit Allocation failed - Java ...
- .NET周报【1月第4期 2023-01-28】
由于微信公众号排版问题,建议大家在PC端浏览. 国内文章 C# 很少人知道的科技 https://blog.lindexi.com/post/C-很少人知道的科技.html 本文来告诉大家在C#很少有 ...
- Unity自定义Button
2022.10.27更新: 该代码中包含以下几个事件:保持按下事件,与其他事件共存. 双击事件会先触发单击,这个问题已经解决,抱歉拖了这么久才完善. 并且新按钮命名为:ButtonPro /* * = ...
- Grafana 系列文章(九):开源云原生日志解决方案 Loki 简介
简介 Grafana Labs 简介 Grafana 是用于时序数据的事实上的仪表盘解决方案.它支持近百个数据源. Grafana Labs 想从一个仪表盘解决方案转变成一个可观察性 (observa ...
- ChatGpt国内教程
近ChatGPT大火呀,小伙伴们是不是在网上看到各种和ChatGPT有趣聊天的截图,比如翻译代码.编写代码,奈何自己实力不够,被网络拒之门外,只能眼馋别人的东西.看别人玩,肯定不如自己玩一把舒服的啊. ...
- 面向对象程序设计(三):new&deleet什么是动态内存
<C++ primer>中提到:在C++中,动态内存的管理是通过一对运算符来完成的: new 在内存池中为对象分配一块空间,并指向这个对象的指针,我们可以在这里对对象进行初始化: dele ...
- 计算机网络基础06-Email应用
1 构成组件 邮件客户端 邮件服务器 SMTP协议 Simple Mail Transfer Protocol 1.1 邮件客户端 读写Email消息 和服务器交互,收发消息 1.2 邮件服务器 邮箱 ...
- Node版本管理工具 - Nvm的下载、安装配置与使用
1.业务背景 不同时期的项目使用的Node版本也不一样,随着版本的更新一直在使用的Node版本也在不断升级,本文介绍一个Node版本的管理工具,可自由切换版本. 2.Nvm下载与安装 1)下载 下载地 ...
- C++练习4 引用的定义与使用
使用 & 为变量和常量作为引用 1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int oneInt ...
- Redis 源码解读之 expire 的时机
Redis 源码解读之 expire 的时机 背景和问题 本文想解决的问题: redis 如何感知并触发 key 过期的? 如何防止大规模的 key 同时过期,导致 redis 主循环阻塞在清理过期 ...