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”解决的更多相关文章

  1. 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 ...

  2. fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string: "13:02:19"

    问题:time类型数据插入不进mysql数据库:调试的时候报如下错误: Caused by: java.lang.NumberFormatException: For input string: &q ...

  3. 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. ...

  4. 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 ...

  5. redis通过json方案存取对象com.alibaba.fastjson.JSONException: syntax error, expect

    问题描述: redis基于json方案存取对象时报错:com.alibaba.fastjson.JSONException: syntax error, expect com.alibaba.fast ...

  6. 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 ...

  7. 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. ...

  8. 做文件上传下载时报这个错com.alibaba.fastjson.JSONException: illegal identifier : \

    ::-exec-] DEBUG c.i.e.m.I.insertDataEmebeding - <== Updates: ::-exec-] ERROR c.i.e.c.CaseArchiveC ...

  9. 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 ...

  10. 解决使用Redis时配置 fastjson反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support

    1.问题描述 在使用redis时,配置自定义序列化redisTemplate为FastJsonRedisSerializer .  1 /** 2 * 自定义redis序列化器 3 */ 4 @Sup ...

随机推荐

  1. render到底是什么,该如何使用它

    一.前言 1.vue程序的运行过程:模板 -> 进行编译 -> 生成ast树 -> 数据绑定 -> 生成render函数 -> 成虚拟dom树 -> 真实dom树 ...

  2. 2023 年该学点什么技术?「GitHub 热点速览 v.23.03」

    春节期间,小鱼干读了一篇万字回顾数据库行业的文章,在文字缝隙里我看见了两个词:AI+ 和数据两个词(当然数据是废话,毕竟是一个数据库的回顾文).在 GitHub 上热点趋势上,可见到 AI+ 的身影, ...

  3. mov eax,dword ptr[0x00aff834] 和 lea eax,[0x00aff834]区别

    mov eax,dword ptr[0x00aff834] 和 lea eax,[0x00aff834]区别 mov eax,[内存]是将内存的值赋值给eax,而lea是直接将地址值赋值给eax 因此 ...

  4. vue学习笔记(四)---- 品牌管理案例

    一.导入相关包 <script src="../lib/vue2.6.10.min.js"></script> <script src=". ...

  5. 平台工程101:Dev、Sec和Ops的自动化黏合剂

    国际权威知名调研机构 Gartner 在<2023年最重要的10个技术趋势>报告中将平台工程(Platform Engineering)列为高速发展的技术趋势之一,并预测到2026年80% ...

  6. 11月22日内容总结——存取数据的历史和数据库的介绍、MySQL介绍、下载和相关操作

    目录 一.存取数据的演变史 1.文本文件 2.软件开发目录规范 3.数据库服务(重点) 1.数据库管理软件的由来 ①程序所有的组件就不可能运行在一台机器上 ②数据安全问题 ③并发 总结 二.数据库软件 ...

  7. Monkey 命令

    1) 参数:  -p 参数-p用于约束限制,用此参数指定一个或多个包(Package,即App).指定 包之后,Monkey将只允许系统启动指定的APP.如果不指定包,Monkey将允许系统启动设备中 ...

  8. Selenium 资源汇总

    created: 2022-8-4 驱动 资源名 网址 说明 chromedriver https://registry.npmmirror.com/binary.html?path=chromedr ...

  9. 简述 Gin 框架如何集成swagger

    https://blog.csdn.net/raogeeg/article/details/86743953 @Title           这个 API 所表达的含义,是一个文本,空格之后的内容全 ...

  10. 学习Java Day18

    一.面向对象(面向过程) 1. 面向对象 找对象(封装了过程)来干. 例如:洗衣服(洗衣机就是对象). 2. 面向对象思想特点 是一种更符合我们思想习惯的思想. 可以将复杂的事情简单化. 将我们从执行 ...