设为首页 加入收藏

TOP

错误提示“com.alibaba.fastjson.JSONException: exepct '[', but string, pos 4, json”解决
2023-07-25 21:41:39 】 浏览:45
Tags:com.alibaba.fastjson.JSONException: exepct ' but string pos 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、后记:

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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇spring 中 singleton 和 prototyp.. 下一篇任何人均可上手的数据库与API搭建..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目