【发布时间】:2011-03-26 21:43:44
【问题描述】:
我正在尝试使用 Jackson 将数组从 javascript 传递到 java servlet,如何做到这一点..谢谢
【问题讨论】:
标签: java javascript json servlets jackson
我正在尝试使用 Jackson 将数组从 javascript 传递到 java servlet,如何做到这一点..谢谢
【问题讨论】:
标签: java javascript json servlets jackson
为了将数组从浏览器传递到服务器端,您不需要 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 的字符串表示形式。
【讨论】:
基本思想应该是直截了当的:
服务器:
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'
});
【讨论】:
getParameterValues,那么您可能没有使用 JSON。你很可能有一个常规的 GET 查询字符串。
getParameterValues 和 Jackson。