关于json串中的时间不能转换到对象的一些做法

今天在用extjs4.2做一个东西的增加时,碰到选择的时间在后台action中怎么都不能转换到对象里面,转换的时间都是当前时间,代码如下:

json为

{"deviceNum":"1",'operTypeBean':{"operType":2},'operator':'sa',"operTime":"01 21 2015","operContent":"\u9e45\u9e45\u9e45\u997f\u9e45\u9e45\u9e45\u997f\u9e45\u9e45\u9e45\u997f\u9e45\u9e45\u9e45\u997f\u9e45\u9e45\u9e45"};

bean类为

public class DeviceLogBean {
private int ID;
private String deviceNum;
private OperTypeBean operTypeBean;
private Date operTime;
private String operator;
private String operContent;

aciton为做的转换为

public static Object getBeanByJson (Class<?> clazz,String jsonData) throws Exception{
JSONObject obj = JSONObject.fromObject(jsonData);
Object o=  JSONObject.toBean(obj, clazz);  
return o;
}

public static void main(String args[])
{
String json="{'deviceNum':'1','operTypeBean':{'operType':2},'operator':'sa','operTime':'2015年1月21 日','operContent':'\u9e45\u9e45\u9e45\u997f\u9e45\u9e45\u9e45\u997f\u9e45\u9e45\u9e45\u997f\u9e45\u9e45\u9e45\u997f\u9e45\u9e45\u9e45'}";
DeviceLogBean bean;
try {
bean=(DeviceLogBean)PageViewHelper.getBeanByJson(DeviceLogBean.class, json);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

这样转换时怎么都不行,bean里面的时间都是当前时间,最后发现给转换的方法做些修改就可以了

在aciton的方法中加二句话如下,红色显示的

public static Object getBeanByJson (Class<?> clazz,String jsonData) throws Exception{
JSONObject obj = JSONObject.fromObject(jsonData);
String[] dateFormats = new String[] {"yyyy年MM月-dd日"};    
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats)); 

Object o=  JSONObject.toBean(obj, clazz);  
return o;
}

转换就正常了,在这需要注意,String[] dateFormats = new String[] {"yyyy年MM月-dd日"};   里面的时间格式要和json串里面的要对应起来,如果不一样出的问题还是一样


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值