u盘无法格式化fast-()
来源:191路由网 2022-12-12 21:44:59
有一天,我们系统服务的依赖者找到了我们,问我们为什么这些数据存在于时间类型的字段中?导致他们在分析时报错。
{"sloganEndtime": "20211-03-10 11:30:00"}// 字段类型private Date sloganEndtime;
所以我们开始调电脑查,最后发现数据源来自于导入表的功能,业务运营商在导入数据时写错了,导致了非常离谱的问题。
问题复现利用原生JDK来转换时间 代码截图如下:
我们换FastJson试试,代码如下:发现会报错!
SkuMainBean mainBean = JSON.parseObject("{\\"sloganEndTime\\":\\"20211-03-1011:30:00\\"}", SkuMainBean.class);System.out.println(mainBean);# 异常信息Exception in thread "main" com.alibaba.fastjson.JSONException: For inputstring: "20211-03-10 11:30:00"atcom.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:627)at com.alibaba.fastjson.JSON.parseObject(JSON.java:361)
为什么FastJson会出问题
跟代码,我们发现FastJson有自己的默认时间格式:
// 电脑com.alibaba.fastjson.JSON#DEFFAULT_DATE_FORMATpublic static String DEFFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
但判断逻辑的使用是提前验证的FORMAT参与长度:
电脑 if (strVal.length() == parser.getDateFomartPattern().length()){DateFormat dateFormat = parser.getDateFormat();try{return (T) dateFormat.parse(strVal);}catch (ParseException e){// ski }// ...return (T) new java.util.Date(longVal);
解决方案(3种)
1.积极增加格式化注释,特别是在需要转换未知参与时,需要提前确定
@JSONField(format="yyyy-MM-dd HH:mm:ss")private Date sloganEndtime;
利用时间戳(Long)替换Date当数据传输时,类型本身的系统,保证数据的合理性,增加相关验证反思为什么FastJson(1.2.36版)使用日期格式化时应提前验证长度?
PS:为什么不检测无注解直接转换失败?
PS:为什么不检测无注解直接转换失败?为什么其他系统正在进行JSON在转换过程中,不要主动添加格式注释?没有绝对的答案。由于使用习惯和代码惯性,我们经常忽略一些我们已经习惯的东西。只有更加严格和全面,我们才能尽量减少出错的可能性。电脑
相关阅读
-
-
电脑无法清除dns缓存文件-(电脑无法清除dns缓存文件怎么办)
计算机无法清除dns缓存文件(计算机无法清除dns如何处理缓存文件?1.开始运行2.进入命令提示符电脑3.输入IPCONFIG/flushdns回车电脑大多数时候,不需要手动清洗DNS缓存的,因域名而访问网站DNS当服务器地址发生变化时,计算机仍然停留在原始电脑访问中DNS在缓存方面,访问网站解析会出现错误。此时,需要手动更新和清除...
2022-12-12
-
-
u盘无法格式化fast-()
u盘子不能格式化fast()问题背景有一天,我们系统服务的依赖者找到了我们,问我们为什么这些数据存在于时间类型的字段中?导致他们在分析时报错。{"sloganEndtime":"20211-03-1011:30:00"}//字段类型privateDatesloganEndtime;所以我们开...
2022-12-12
-
-
u盘格式化为fat32-()
u盘格式化为fat32()当我们想快速删除U盘中的文件时,我电脑们经常使用格式化功能。事实上,格式化有三种系统(NTFS、Fat32、exFat)可以选择,很多人可能不注意,选择默认系统。对于经常使用U盘跨平台设备的用户,可能会遇到设备无法读取U盘的情况(例如在Windows可读...
2022-12-12
-
-
win10系统盘u盘怎么做系统-(用u盘怎么做win10系统)
win10系统盘u盘怎么样?(u盘怎么做?win10系统)上一张图解了如何制作启动U盘,以及在制作系统之前,必要的软件,如系统镜像、驱动程序等。写文章的时候,我个人一直认为应该多写疑难点,大家都知道尽量一笔带。今天我们来看看安装情况。windows10流程,明天讲win7安装。具体分三步!第一步:准备工作第二步:安装过程第三步:新系统优化首先,第一步是做好准备工作,否则很...
2022-12-12
-
-
大白菜装机制作u盘启动工具箱-(大白菜U盘启动制作工具)
大白菜装机制作u盘启动工具箱(大白菜U盘启动制作工具)何谓PE工具箱。#pe##winpe##U盘启动###PE工具箱#就是windows一部分维护工具集成在一个超级精简的系统中,PE工具箱安装在U盘中,当计算机系统损坏时,需要在维修时使用。准备工具:U盘一个(U建议购买接口超过3.0的U盘。现在U盘便宜,3.0接口均为蓝色接口);PE程序一套:PE现在市面...
2022-12-12
191路由网 - 192.168.1.1,192.168.0.1无线路由器设置教程
版权声明:本站的文章和图片来自互联网收集,仅做分享之用如有侵权请联系站长,我们将在24小时内删除