`

利用Java反射机制将Json格式字符串反射为 Bean List

阅读更多

前面提到过Strtus2在2.1.6以后就将Json格式整合到Strtus中了,可见到struts-json-plugin,在Struts的文档里面有下面一段例子:

 

Example

Setup Action

 

This simple action has some fields:

Example:

 

Write the mapping for the action

  1. Add the map inside a package that extends "json-default"
  2. Add a result of type "json"

 

Example:

JSON example output


如例子中所示,根据配置Strtus会通过JsonUtil将对象转换为Json格式的字符串,然后通过流返回给客户端,但当Ext返回Json对象的时候,JsonUtil的反序列化功能似乎逊色了许多,大概看了一下源代码JsonUtil中能将Json格式的对象集合转为List<Map<Objcet,Object>>这种格式,而不能映射到实体类,现实中Json的工具还有许多,例如google的Json工具就提供了fromJson的方法,在这里我只是利用Java反射写了一个对简单类型反射的工具类,说了这么多废话,切入正题:

 


主要是找到SET方法然后将对应的属性设置进去,而对应的属性则是根据判断参数类型来进行的,再看下面这一句
Strtus2的Json Plugin似乎有一个问题目前还没有搞清楚,Strtus在将java.util.Date类型时间格式

2011-07-13 14:24:31

转换为Json字符串的时候变成了这个样子

 

 

2011-07-13T14:24:31

所以当提交回来的时候如果是这种时间格式是不能转换的,于是有了上面把T替换为“ ”的操作。

 

明天再研究一下到底是什么原因导致时间类型转换的异常。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics