本文主要是介绍使用json-lib的JSONObject.toBean( )时碰到的日期属性转换的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当前台以JSON格式向后台传递数据的时候,对于数据中的日期属性,无法正常转换为相应的Date属性。JSON数据是这样的:
{"birthday":"1980/01/01","name":"testname"}
要转换成的类是这样的:
public class Person {private String name;private Date birthday;public void setName(String name) {this.name = name;}public String getName() {return name;}public void setBirthday(Date birthday) {this.birthday = birthday;}public Date getBirthday() {return birthday;}
}
转换的代码是这样的:
JSONObject jsonPerson = JSONObject.fromObject(personData); //personaData是json串
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
解决方法
JSONObject jsonPerson = JSONObject.fromObject(personData);
String[] dateFormats = new String[] {"yyyy/MM/dd"};
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats));
Person person = (Person)JSONObject.toBean(jsonPerson, Person.class);
这篇关于使用json-lib的JSONObject.toBean( )时碰到的日期属性转换的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!