struts-json-plugin处理"yyyy-MM-dd'T'HH:mmss"格式问题解决

4 篇文章 0 订阅
2 篇文章 0 订阅
一般我们在服务端中使用struts-json-plugin编码,在客户端使用net.sf.json-lib解码,
虽然这两个组件都是用的是json协议,但是在转换的时候,会遇到一些问题,比如说列表类型,还有下面要说到的日期类型。

struts-json-plugin编码日期类型一般编码为"yyyy-MM-dd'T'HH:mmss"(例如2012-10-09T17:28:32),而 net.sf.json-lib 一般编码成毫秒的长整型表示,因此要使两方能够协作编解码的话,要么改变struts-json-plugin的格式(不可行,因为文档上说得明白,只能使用SimpleDateFormatter的格式),要么改变json-lib的格式,只需要在解码json字符串前加上一句即可:
JSONUtils.getMorpherRegistry().registerMorpher(newDateMorpher(new String[] {"yyyy-MM-dd't'HH:mm:ss"}),false);
SomeCls obj =( SomeCls )JSONObject.toBean(JSONObject.fromObject(someStr),  SomeCls .class);

另外,对于列表类型,需要注册类型:
Map classMap = new HashMap();
classMap.put("SomeCls2", SomeCls2.class);
SomeCls obj =( SomeCls )JSONObject.toBean(JSONObject.fromObject(someStr),  SomeCls .class,classMap);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值