今天碰到这样一个问题:
当前台以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
在网上搜了一遍,发现了很多关于进行相反方向转换时的帖子,即使用json-lib将bean转成json串时,日期属性的格式不符合习惯,后来好不容易才找到了这个问题的解决办法,虽然是抄别人的,但也发一贴为以后其他人更容易找到答案出点力,呵呵。废话少说,其实解决方法很简单,把转换代码改成这样:
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和ezmorpher的相关文档。
问题补充:哈
本来是发帖子的,怎么被系统自动转到问答栏目来了,估计是题目没起好,叫了个“。。。问题”,见笑了。
相关推荐
赠送jar包:android-json-0.0.20131108.vaadin1.jar; 赠送原API文档:android-json-0.0.20131108.vaadin1-javadoc.jar; 赠送源代码:android-json-0.0.20131108.vaadin1-sources.jar; 赠送Maven依赖信息文件:...
在web中的jsonobject有个直接可以tobean的方法用起来非常方便,可android没有,所以通过反射机制学习web中的jsonobject写了一个jsonobject的tobean,方便使用.
NULL 博文链接:https://huibin.iteye.com/blog/680822
在web项目中经常会用到json数据(如:struts2处理请求返回json数据给jsp解析),因此,JSONObject对象是必备的,这时就需要引入相关的jar包了。 json所需要的jar包如下: json-lib-2.4-jdk15.jar json所依赖的jar...
解决JsonObject.fromObject方法,和转换List,String>> 型数据的JsonArray.fromObject()方法
有关json-lib-2.2.3-jdk15.jar使用需要的一些jar包
jar包如下:commons-beanutils-1.7,commons-collections,commons-lang,commons-logging-1.1.1,ezmorph, gson-2.2.1,gson-2.2.1-sources,json-lib-2.2.2-jdk15
使用JSON时要导入几个包,这样才可以使用JSONArray,JSONObject等。 本资源包含最新版 json-lib-2.4-jdk15.jar 版本 以及json-lib需要的依赖包: commons-lang commons-beanutils commons-collections commons-...
最新的json-lib,方便地处理jsonobject 资源清单 json-lib-2.3-jdk15.jar 文档: json-lib-2.3-jdk15-javadoc.jar 依赖: ezmorph-1.0.6.jar commons-beanutils-1.8.3.jar commons-lang-2.5.jar morph-1.1.1.jar ...
开源最新的json 库文件。json-lib-2.4-jdk15, fastjson-1.2.2
asp用json类:jsonObject.class.asp,很好用,内涵使用实例,可以直接将rs读取的数据转为json对象使用
最近在研究Webservice的时候遇到一个问题,把java对象转化问json后传过去,接受的是String类型,怎么恢复到原来的java对象呢,后来再一个项目中看到了转换方法,转换顺序为javaBean--jsonObject--jsonString,还原...
org.json.jsonobject等6个jar压缩包集合。包含JSONObject所必需的6个jar包: commons-beanutils-1.7.0.jar commons-collections-3.1.jar commons-lang-2.5.jar commons-logging.jar ezmorph-1.0.3.jar(这里是ezmorph...
json-lib-2.4-jdk15的jar包和源码,便于大家使用net.sf.json.JSONObject及阅读源码。 资源的官方网站http://json-lib.sourceforge.net/
json-lib完整包, commons-beanutils.jar, commons-collections.jar, commons-lang-2.4.jar, commons-logging.jar, ezmorph-1.0.4.jar, json-lib-2.3-jdk15.jar, 以及一个小的测试类。
org.json.JSONObject引用依赖包 org.json.JSONObject引用依赖包 org.json.JSONObject引用依赖包 org.json.JSONObject引用依赖包
java开发中需要jsonObject,jsonArray需要用到6个jar包,net.sf.json.JSONObject commons-beanutils-1.7.0.jar commons-collections-3.1.jar commons-lang-2.5.jar commons-logging.jar ezmorph-1.0.3.jar json-lib-...
org.json.JSONObject的6个jar包 commons-beanutils;commons-collections;commons-lang;commons-logging;ezmorph;json-lib