使用Jackson将数组从javascript传递到java servlet

时间:2010-08-08 08:29:40

标签: java javascript json servlets jackson

我试图使用Jackson将数组从javascript传递给java servlet,如何做到这一点..谢谢

2 个答案:

答案 0 :(得分:2)

基本理念应该是直截了当的:

服务器:

doPost(HttpServletRequest req, HttpServletResponse resp)
{
  ObjectMapper mapper = new ObjectMapper();
  ArrayNode rootNode = mapper.readValue(req.getReader(), ArrayNode.class);
}

客户端:

使用jQuery(您也可以使用其他框架或手动完成)。加载json2.js的副本以确保您拥有JSON.stringify。

jQuery.ajax({
  type: 'POST',
  url: servletURL,
  data: JSON.stringify(jsArray),
  dataType: 'json',
  contentType: 'application/json'
});

答案 1 :(得分:0)

为了将数组从浏览器传递到服务器端,您不需要Jackson。你只需要Ajax。例如,使用jQuery可以这样做:

$.ajax({
  url: 'your servlet url',
  data: yourArray
});

然后在服务器端,您可能希望将JSON反序列化为JavaBean,或者在您的情况下,使用Jackson将java.util.List反序列化。你可以这样做:

ObjectMapper mapper = new ObjectMapper();
List array = mapper.readValue(jsonText, List.class);

其中jsonText包含从浏览器发送到服务器端的yourArray的字符串表示形式。