1

jqueryでjsonオブジェクトを作成し、それをjspで処理してjson形式で返したいです。json オブジェクトを作成し、jsp ファイルに投稿しました。

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

jsp ファイルで、パラメーターを読み取って jsonobject に入れましたが、json 例外 - null オブジェクト例外が返されます。

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);
   }
);

JSONではなくオブジェクトリテラルを投稿していました。ここでオブジェクトと JSONについてよく読んでください

.serializeArray()ドキュメントからこれに注意してください:

.serializeArray() メソッドはオブジェクトの JavaScript 配列を作成し、JSON 文字列としてエンコードする準備ができています。一連のフォーム要素を表す jQuery オブジェクトで動作します。

強調鉱山...

于 2012-08-01T09:49:16.473 に答える