1

我想在 jquery 中创建一个 json 对象并在 jsp 中处理它并以 json 格式返回。我创建了一个 json 对象并发布到一个 jsp 文件:

$.post("processDropDown.jsp", $('#fields tr td input').serializeArray(),
function(data) {
alert(data);
});

在 jsp 文件中,我读取参数并放入 jsonobject,但返回 json exception-null object 异常。

JSONObject inp = new JSONObject();
Enumeration enumeration = request.getParameterNames();
try {
    while (enumeration.hasMoreElements()) {
        String parameterName = (String) enumeration.nextElement();
        out.print("\nParameter = " + parameterName+"\n");
        inp = inp.getJSONObject(request.getParameter(parameterName));
        out.print("::" + inp.toString());
    }
} catch(Exception ex) {
    out.print(ex);
}

JSON.stringify() 方法在我将其传递给 jsp 之前在客户端中返回以下输出。

JSON.stringify($('#fields tr td input').serializeArray());

[{"name":"valueField","value":"12"},{"name":"textField","value":"Twelve"},{"name":"valueField","value":"34"},{"name":"textField","value":"ThirtyFour"}]
4

1 回答 1

2

改变

$.post("processDropDown.jsp", 
   $('#fields tr td input').serializeArray(),
   function(data) {
      alert(data);
   }
);

$.post("processDropDown.jsp", 
   JSON.stringify($('#fields tr td input').serializeArray()),
   function(data) {
      alert(data);
   }
);

您发布的是 Object Literal 而不是 JSON。很好地阅读了关于Object vs JSON here

请注意.serializeArray()文档中的这一点:

.serializeArray() 方法创建一个JavaScript 对象数组,准备好编码为 JSON 字符串。它对表示一组表单元素的 jQuery 对象进行操作。

强调我的...

于 2012-08-01T09:49:16.473 回答