使用ObjectMapper把json转换为实体-时间转换问题
2014-05-27 10:14
465 查看
ObjectMapper转换为实体时,对于时间的格式化处理是调用自己的StdDateFormat类来实现日期格式话的,此类有
"yyyy-MM-dd'T'HH:mm:ss.SSSZ";
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
"yyyy-MM-dd";
"EEE, dd MMM yyyy HH:mm:ss zzz";
四种格式化类型,而我们平时使用日期都是"yyyy-MM-dd HH:mm:ss"类型的偏多,
这时转换肯定抛出异常-----------------
org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value '2012-12-10 12:23:54': not a valid representation (error: Can not parse date "2012-12-10 12:23:54": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
at [Source: java.io.StringReader@e8e86; line: 1, column: 19] (through reference chain: zz.housework.entity.Staff["occupationDate"])
//----------------------------------------------------
这时我们需要在objcetMapper中注册自己的日期转换工具
// 获取mapper对象
ObjectMapper mapper = new ObjectMapper();
// ==========自定义日期格式========
获取实体序列化配置对象
DeserializationConfig cfg = mapper.getDeserializationConfig();
设置自己的日期转换工具-其中MyDateFormat为我自己继承自SimpleDateFormat的类,以便处理“yyyy-MM-dd HH:mm:ss”与"yyy-MM-dd"两种日期格式
cfg.setDateFormat(new MyDateFormat());
注入mapper中
mapper = mapper.setDeserializationConfig(cfg);
"yyyy-MM-dd'T'HH:mm:ss.SSSZ";
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
"yyyy-MM-dd";
"EEE, dd MMM yyyy HH:mm:ss zzz";
四种格式化类型,而我们平时使用日期都是"yyyy-MM-dd HH:mm:ss"类型的偏多,
这时转换肯定抛出异常-----------------
org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value '2012-12-10 12:23:54': not a valid representation (error: Can not parse date "2012-12-10 12:23:54": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
at [Source: java.io.StringReader@e8e86; line: 1, column: 19] (through reference chain: zz.housework.entity.Staff["occupationDate"])
//----------------------------------------------------
这时我们需要在objcetMapper中注册自己的日期转换工具
// 获取mapper对象
ObjectMapper mapper = new ObjectMapper();
// ==========自定义日期格式========
获取实体序列化配置对象
DeserializationConfig cfg = mapper.getDeserializationConfig();
设置自己的日期转换工具-其中MyDateFormat为我自己继承自SimpleDateFormat的类,以便处理“yyyy-MM-dd HH:mm:ss”与"yyy-MM-dd"两种日期格式
cfg.setDateFormat(new MyDateFormat());
注入mapper中
mapper = mapper.setDeserializationConfig(cfg);
相关文章推荐
- 对象中含有java.util.Date时使用JSONArray.fromObject时时间显示问题
- @requestbody接收json参数 映射到 实体类中 Date(时间日期)类型转换问题
- java 使用ObjectMapper的方式实现Json和bean的转换
- 使用json-lib的JSONObject.toBean( )时碰到的日期属性转换的问题
- 使用 jackson ObjectMapper将java对象转换为json对象
- JSONObject.fromObject 转换JSON字符串Map时间处理的问题
- 使用json-lib的JSONObject.toBean( )时碰到的日期属性转换的问题
- 使用json-lib的JSONObject.toBean( )时碰到的日期属性转换的问题
- 使用json-lib的JSONObject.toBean( )时碰到的日期属性转换的问题
- 使用JSONObject出现的一系列java.lang.NoClassDefFoundError问题
- js使用eval来转换JSON字符到Object
- JSONArray.fromObject转换float类型的问题
- 4.使用Jackson将Json数据转换成实体数据
- 关于使用ajax请求servletList转换Json抛的异常There is a cycle in the hierarchy!暨将List转换为JSONArray问题解决!
- EF.使用反射解决实体类型转换问题
- json转换时间类型的字符串为object-小心
- 关于Web项目里的给表单验证控件添加结束时间不得小于开始时间的验证方法,日期转换和前台显示格式之间,还有JSON取日期数据格式转换成标准日期格式的问题
- 使用JSONObject转换json数据报错:There is a cycle in the hierarchy!的解决办法
- JSONObject.fromObject 转换JSON字符串Map的问题
- jsonobject.fromobject方法转换中出现的问题