通过DWR发送和接收JSON对象

时间:2011-11-14 10:05:22

标签: java javascript json dwr

我在我的项目中使用DWR进行AJAX调用。 DWR通过读取java类将javascript对象转换为java对象。我想通过DWR发送和接收类似结构的JSON。

例如:

JS对象:

{
  "name" : "TamilVendhan",
  "age" : "24",
  "hobbies" : [
    "gaming",
    "gaming",
    "gaming"
  ],
  "address" : {
    "doorNo" : "122",
    "city" : "Banglore",
    "state" : "Karnataka",
    "country" : "india"
  }
}

上面的js对象可以转换为Java,如下所示:

Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "TamilVendhan");
map.put("age", "24");
List<String> list = new ArrayList<String>();
list.add("gaming");
list.add("gaming");
list.add("gaming");
map.put("hobbies", list);
Map<String, Object> addr = new HashMap<String, Object>();
addr.put("doorNo",122);
addr.put("city", "banglore");
addr.put("state", "Karnataka");
addr.put("country", "India");
map.put("address", addr);

DWR是否可行。如果可能的话,给我一些指示!

谢谢!


更新

在DWR中可以将JS对象转换为Map<String, Object>。但它只有一(1)级。如果您有任何嵌套对象/数组,则不会转换它并以conversion error结束。

请参阅此ticket.

1 个答案:

答案 0 :(得分:1)

最新版本的DWR支持json,你需要在web.xml中通过为DWR Servlet传递init-param来启用,可以找到更多信息at,对于DWR也有一本好书命名&#39; DWR Java AJAX应用程序&#39;。