今天碰到这样一个问题:
当前台以JSON格式向后台传递数据的时候,对于数据中的日期属性,无法正常转换为相应的Date属性。
JSON数据是这样的:
{"birthday":"1980/01/01","name":"testname"}

我要转换成的类是这样的:

  1. public class Person {
  2. private String name;
  3. private Date birthday;
  4. public void setName(String name) {
  5. this.name = name;
  6. }
  7. public String getName() {
  8. return name;
  9. }
  10. public void setBirthday(Date birthday) {
  11. this.birthday = birthday;
  12. }
  13. public Date getBirthday() {
  14. return birthday;
  15. }
  16. }

转换的代码是这样的:

  1. JSONObject jsonPerson = JSONObject.fromObject(personData);  //personaData是json串
  2. Person person = (Person)JSONObject.toBean(jsonPerson, Person.class);

转换时并不抛出例外,而是在日志中打出以下警告信息:
Can't transform property 'birthday' from java.lang.String into java.util.Date. Will register a default Morpher

在网上搜了一遍,发现了很多关于进行相反方向转换时的帖子,即使用json-lib将bean转成json串时,日期属性的格式不符合习惯,后来好不容易才找到了这个问题的解决办法,虽然是抄别人的,但也发一贴为以后其他人更容易找到答案出点力,呵呵。废话少说,其实解决方法很简单,把转换代码改成这样:

  1. JSONObject jsonPerson = JSONObject.fromObject(personData);
  2. String[] dateFormats = new String[] {"yyyy/MM/dd"};
  3. JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats));
  4. Person person = (Person)JSONObject.toBean(jsonPerson, Person.class);

想深究原因的人可以参看json-lib和ezmorpher的相关文档。

最新文章

  1. Windows+Caffe+VS2013+python接口配置过程
  2. 局部打印插件 jquery.PrintArea.js
  3. Atiti 重定向标准输出到字符串转接口adapter stream流体系 以及 重定向到字符串
  4. clang LLVM 介绍和安装(Ubuntu10 64位)
  5. Linux jdk1.7安装与 jdk1.6卸载
  6. JS 中面向对象的5种写法
  7. EWM一个仓库号对应ERP多个PLANT的配置
  8. Java正常关闭资源的方式
  9. JAVA·多线程:创建线程的两种方式
  10. uva 10652 Board Wrapping
  11. OC基础4:类和方法
  12. SMTP协议分析
  13. 第一回:Scrapy的试水
  14. 如何通过Mock API提高APP开发效率?
  15. Android版数据结构与算法(五):LinkedHashMap核心源码彻底分析
  16. 在keil中添加stc系列单片机型号(模型)方法
  17. C# 之 Structure 和 Class的区别
  18. docker 应用-4(swarm模式搭建集群)
  19. odoo开发笔记 -- 多个视图共用一个模型
  20. mysql错误:this authentication plugin is not supported

热门文章

  1. react 监听 移动端 手机键盘 enter 事件
  2. 【凯子哥带你夯实应用层】使用ActionProvider实现子菜单时遇到的一个坑
  3. 编码知识 (Unicode、UTF-8、ANSI)
  4. Docker在centos下安装以及常见错误解决
  5. 制作一个塔防游戏 Cocos2d-x 2.1.4 (一)
  6. sublime 快捷键 汇总--长期
  7. JAR、WAR、EAR(转载)
  8. Spring AOP(转载)
  9. 一个经典的比喻( 关于TCP连接API )
  10. 【BZOJ4293】[PA2015]Siano 线段树