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

Flo*_*rin 1 java ajax dwr

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

Jon*_*nik 6

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

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

这是DWR文档的引用(强调我的):

默认情况下,所有以下内容都将为您转换而无需进一步声明:

  • 所有原始类型,boolean,int,double等.
  • 这些布尔,整数等的基于类的版本.
  • java.lang.String中
  • java.util.Date和3个SQL派生物
  • 上面的数组
  • 上面的集合(列表,集合,映射,迭代器等)
  • 来自DOM,XOM,JDOM和DOM4J的DOM对象(如Element和Document)

所以你绝对不需要这些JSON字符串(虽然这可能是更复杂的数据结构的一个很好的选择).

实际上,您可以返回更多种类的对象,而无需进行大量的手动操作,因为DWR带有许多典型用途的" 转换器 ".例如,要使自定义"bean"样式的Java对象在客户端JS中工作,您需要说的dwr.xml是您想要使用bean转换器:

<convert converter="bean" match="com.company.YourBean" />
Run Code Online (Sandbox Code Playgroud)

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

public static List<YourBean> getData(){ ... }
Run Code Online (Sandbox Code Playgroud)

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