有一个字段类型是日期的,如果用户没有填写.默认的日期就是9999-99-99 这样,当这样一个日期,使用fastjson反序列化的时候,会报错.我实际的测了一下,2999年还能正常解析.3000年的时候,就报错了.
String str = "{name:'honway',date:'3000-09-09'}";
User user = JSON.parseObject(str,User.class);
System.out.println(user);
具体错误内容如下
com.alibaba.fastjson.JSONException: For input string: "3000-09-09"
日期格式化问题,fastjson默认采用"yyyy-MM-dd HH:mm:ss"格式化,或者传入一个long型的时间
你可以"{name:'honway',date:'3000-09-09 00:00:00'}";
或者你没法修改你数据库的默认值,那就修改默认的格式化格式
JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
public void test(){
Stringstr="{name:'honway',date:'3000-09-09'}";
JSON.DEFFAULT_DATE_FORMAT="yyyy-MM-dd";
User user=JSON.parseObject(str,User.class);
System.out.println(user);
}