com.alibaba.fastjson.JSONException: not close json text, token : error

news/2024/11/30 12:41:25/

今天遇到一个相当智障的问题,前端传参数到后端,后端直接报json解析错误,not close?? 听着就很奇怪,关键有的时候正常,有的时候不正常。于是先在浏览器中F12,看传的参数 感觉 没问题,在后端filter中获得request的body,打印出来,很长,也看不出来问题。
1、先来看一下用以接收参数的dto

@Data
public class DeliveryFeeProcessDTO extends TDeliveryFeeProcessRecord {/*** 货物明细*/private List<TDeliveryFeeProcessGoodsInfo> goodsList;/*** 文件列表*/private List<FileInfo> fileList;/*** 1 通过* 0 驳回*/private Integer state;
}

项目中配置的是fastjson,1.2.83

  http:converters:preferred-json-mapper: fastjson       # Json转换器<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version></dependency>

可以看到有两个list 比较可疑··
2、看一下我精简后的json 字符串,这也能报错?

{"creatorId": "superadmin","goodsList": "","fileList": ""}

3、写一个demo

public static void main(String[] args) {
//        String json = "{\"creatorId\": \"superadmin\",\"goodsList\": \"\",\"fileList\": []}";dealJson("{\"creatorId\": \"superadmin\",\"goodsList\": \"\"}");dealJson("{\"creatorId\": \"superadmin\",\"fileList\": \"\"}");dealJson("{\"creatorId\": \"superadmin\",\"goodsList\": []}");dealJson("{\"creatorId\": \"superadmin\",\"fileList\": []}");dealJson("{\"creatorId\": \"superadmin\",\"goodsList\": \"\",\"fileList\": []}");dealJson("{\"creatorId\": \"superadmin\",\"goodsList\": \"\",\"fileList\": \"\"}");dealJson("{\"creatorId\": \"superadmin\",\"goodsList\": [],\"fileList\": []}");dealJson("{\"creatorId\": \"superadmin\",\"goodsList\": [],\"fileList\": \"\"}");}private static void dealJson(String json) {Boolean flag = true;try {DeliveryFeeProcessDTO dto = JSONObject.parseObject(json, DeliveryFeeProcessDTO.class);}catch (Exception e){flag = false;
//            System.out.println(json);System.out.println(e.getMessage());
//            e.printStackTrace();}if(flag){System.out.println("PASS"+json);}else {System.out.println("FAILED"+json);}}

出来的结果是

FAILED{"creatorId": "superadmin","goodsList": ""}
FAILED{"creatorId": "superadmin","fileList": ""}
PASS{"creatorId": "superadmin","goodsList": []}
PASS{"creatorId": "superadmin","fileList": []}
FAILED{"creatorId": "superadmin","goodsList": "","fileList": []}
FAILED{"creatorId": "superadmin","goodsList": "","fileList": ""}
PASS{"creatorId": "superadmin","goodsList": [],"fileList": []}
PASS{"creatorId": "superadmin","goodsList": [],"fileList": ""}

可以看到,应该是因为List不能是空字符串,必须是空数组才行
但是最后一个就很鬼畜了!!竟然PASS了!

好了,省流(我懒得去翻fastjson的源码,更懒得去看fastjson的release note)。解决办法是升级····简单粗暴。在maven仓库中查到最新是2.0.53

        <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.53</version></dependency>

所以,每当你以为自己技术还行的时候,就会在小坑里栽跟头


http://www.ppmy.cn/news/1551193.html

相关文章

vulnhub靶场之hackableⅢ

hackable3 前言 这里使用virtual box加载靶机 靶机&#xff1a;hackable3 攻击&#xff1a;kali 主机发现 使用arp-scan -l扫描 信息收集 使用nmap扫描 这里明显&#xff1a; 22端口ssh服务可能过滤了80端口开启apache的http服务 网站目录扫描 使用dirsearch扫描&…

渗透测试笔记—Windows基础和病毒制作

声明&#xff1a; 学习视频来自B站up主 【泷羽sec】有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&am…

数据采集中,除了IP池的IP被封,还有哪些常见问题?

在数据采集的过程中&#xff0c;代理IP池的使用无疑为我们打开了一扇通往信息宝库的大门。然而&#xff0c;除了IP被封禁这一常见问题外&#xff0c;还有许多其他问题可能影响数据采集的效果。本文将探讨在数据采集中&#xff0c;除了IP被封之外&#xff0c;还可能遇到的一些常…

深入探索Facebook的技术生态:社交网络背后的科技创新

Facebook&#xff08;现Meta&#xff09;作为全球领先的社交平台&#xff0c;其背后的技术生态是推动其不断创新与发展的关键。除了作为一个社交网络&#xff0c;Facebook通过深度融入人工智能、虚拟现实、增强现实等前沿技术&#xff0c;重塑了数字社交的未来。本文将简要探讨…

七天掌握SQL——第六天:数据库性能优化与监控

一、引言 在数据库管理系统中&#xff0c;性能优化与监控是确保数据库高效运行的关键环节。通过优化查询和索引&#xff0c;可以显著提升数据库的处理速度&#xff1b;而有效的监控技术则能帮助我们及时发现并解决潜在的性能问题。本文将详细介绍数据库性能优化的方法&#xf…

VC++网络安全编程范例(12)-PKI编程

PKI&#xff08;Public Key Infrastructure &#xff09; 即"公钥基础设施"&#xff0c;是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系&#xff0c;简单来说&#xff0c;PKI就是利用公钥理论和技…

C++算法练习-day45——236.二叉树的最近公共祖先

题目来源&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目思路分析 题目要求在一个二叉树中找到两个给定节点的最低公共祖先&#xff08;Lowest Common Ancestor, LCA&#xff09;。最低公共祖先是指在树中同时包含两个给定节点的所有节点中&#xff0c;深度最大的…

记一次 .NET某hdp智能柜系统 卡死分析

一&#xff1a;背景 1. 讲故事 停了一个月时间没有更新博客了&#xff0c;主要是这段时间有些许事情导致心神不宁&#xff0c;我这个人也比较浮躁所以无法潜心修炼&#xff0c;事情如下&#xff1a; 被狗咬了 也不知道是不是出门没看黄历&#xff0c;在小区门口店里买烟&am…