如何解析DWR返回的对象数组?

时间:2008-11-21 20:30:32

标签: java ajax dwr

DWR非常直接地处理基元列表。我无法找到DWR方法调用返回的对象数组是否表示JSON对象。有线索吗?或者我是否必须将表示对象数组的JSON字符串返回给浏​​览器?

1 个答案:

答案 0 :(得分:6)

这个答案有点晚了,但这里有:)

好消息:DWR还以非常直接的方式处理Java数组和集合。只需返回它们,在客户端,您将获得JavaScript Array对象。 (在典型情况下,比如数组或集合中的基元或字符串,即。如果内容更具异国情调,则可能需要定义转换器;更多信息如下。)

以下是DWR documentation(强调我的)的引用:

  

默认情况下,以下所有内容均为   没有进一步的转换   声明:

     
      
  • 所有基本类型,boolean,int,double等
  •   
  • 这些布尔,整数等的基于类的版本
  •   
  • java.lang.String中
  •   
  • java.util.Date和3个SQL派生词
  •   
  • 以上
  • 的数组   
  • 上述
  • 的集合(列表,集合,地图,迭代器等)   
  • 来自DOM,XOM,JDOM和DOM4J的DOM对象(如元素和文档)
  •   

所以你绝对不需要这些JSON字符串(尽管对于更复杂的数据结构来说这可能是一个很好的选择)。

实际上,您可以在不进行大量手动操作的情况下返回更多种类的对象,因为DWR带有“converters”,可用于许多典型用途。例如,要使您的自定义“bean”样式Java对象在客户端JS中工作,您在dwr.xml中需要说的就是您要使用bean converter

<convert converter="bean" match="com.company.YourBean" />

即使你的方法返回那些bean对象的List(或数组)......

public static List<YourBean> getData(){ ... }

......以上配置就足够了,这很不错。