假设有一个Person类,
现在客户端那边传来如下的json规则的字符串String personJson = "{birthday:\"06/28/2008 17:00:00\"}",要用
JSONOjbect.toBean(JSONObject.from(personJson ),Person.class)方法来获得相应的Person实例时就出问题了,报错如下:
注意这里虽然有"Person's brithday: Thu Jun 19 13:57:39 CST 2008 "这样输出,但它的时间值与输入不符.
这个怎么解决?
以下是我做实验用的Java代码:
=======================
public class Person{
private java.util.Date birthday;
// settor and gettor methods.....
}
现在客户端那边传来如下的json规则的字符串String personJson = "{birthday:\"06/28/2008 17:00:00\"}",要用
JSONOjbect.toBean(JSONObject.from(personJson ),Person.class)方法来获得相应的Person实例时就出问题了,报错如下:
[align=center]2008-6-19 13:57:39 net.sf.json.JSONObject morphPropertyValue
警告: Can't transform property 'birthday' from java.lang.String into java.util.Date. Will register a default Morpher
2008-6-19 13:57:39 net.sf.ezmorph.bean.BeanMorpher morph
信息: Property 'java.util.Date.class' has no write method. SKIPPED.
2008-6-19 13:57:39 net.sf.ezmorph.bean.BeanMorpher morph
警告: Property 'java.lang.String.date' does not exist. SKIPPED.
2008-6-19 13:57:39 net.sf.ezmorph.bean.BeanMorpher morph
信息: Property 'java.util.Date.day' has no write method. SKIPPED.
2008-6-19 13:57:39 net.sf.ezmorph.bean.BeanMorpher morph
警告: Property 'java.lang.String.hours' does not exist. SKIPPED.
2008-6-19 13:57:39 net.sf.ezmorph.bean.BeanMorpher morph
警告: Property 'java.lang.String.minutes' does not exist. SKIPPED.
2008-6-19 13:57:39 net.sf.ezmorph.bean.BeanMorpher morph
警告: Property 'java.lang.String.month' does not exist. SKIPPED.
2008-6-19 13:57:39 net.sf.ezmorph.bean.BeanMorpher morph
警告: Property 'java.lang.String.seconds' does not exist. SKIPPED.
2008-6-19 13:57:39 net.sf.ezmorph.bean.BeanMorpher morph
警告: Property 'java.lang.String.time' does not exist. SKIPPED.
2008-6-19 13:57:39 net.sf.ezmorph.bean.BeanMorpher morph
信息: Property 'java.util.Date.timezoneOffset' has no write method. SKIPPED.
2008-6-19 13:57:39 net.sf.ezmorph.bean.BeanMorpher morph
警告: Property 'java.lang.String.year' does not exist. SKIPPED.
Person's brithday: Thu Jun 19 13:57:39 CST 2008
[/align]
注意这里虽然有"Person's brithday: Thu Jun 19 13:57:39 CST 2008 "这样输出,但它的时间值与输入不符.
这个怎么解决?
以下是我做实验用的Java代码:
=======================
package json;
import java.util.Date;
import net.sf.json.JSONObject;
public class Person {
private Date birthday;
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public static Person getInstance(String jsonVale) {
return (Person)JSONObject.toBean(JSONObject.fromObject(jsonVale),Person.class);
}
public static void main(String[] args) {
String personJson = "{birthday:\"06/28/2008 17:00:00\"}";
Person p = getInstance(personJson);
System.out.println("Person's brithday: "+ p.getBirthday());
}
}
====
所需Jar包见附件.