本当にテストするために、jsonデータを別のjspページに送信しています。
my jsp from のテキスト フィールドに JSON 形式の文字列を入力します。jquery 処理によって処理されるフォーム リクエストを介してこれを送信します。受信側 JSP に送信されます。これを行うために次のコードを使用しています。
送信する前に、次を使用してデータを取得します。
jsonData = $form.find( 'textarea[name="jsonData"]' ).val();
次に、次のことを行います。
var parsedJsonObject = $.parseJSON(jsonData);
これは私の送信コードです:
$.ajax({
type: "POST",
url: "receiver.jsp",
data: "jsonData=" + parsedJsonObject, // This is an object, created using parseJSON
success: function(data, textStatus, jqXHR) {
alert('Success : ' + data);
alert('textStatus : ' + textStatus);
alert('jqXHR : ' + jqXHR);
var jsonJqXHR = JSON.stringify(jqXHR);
alert('jsonJqXHR : ' + jsonJqXHR);
},
error:function (xhr, ajaxOptions, thrownError){
alert('Error xhr : ' + xhr.status);
alert('Error thrown error: ' + thrownError);
},
//complete: alert('complete'),
dataType: "text" // xml, json, script, text, html
});
私のJSPでは、次のことを行います。
String jsonData = request.getParameter("jsonData");
System.out.println("jsonData : " + jsonData);
これは次の出力を返します: json : "[object Object]"
どうすればデシリアライズできますか? 私はgsonでいくつかのことをしましたが、試してみると:
Gson gson = new Gson();
String json = gson.toJson(obj);
System.out.println("json = " + json); // I still get an output of: json = "[object Object]"
gson.fromJson(json, MyClass.class);
エラーが発生します:
servlet jsp threw exception: com.google.gson.JsonParseException: Expecting object found: "[object Object]"
オブジェクトからこのデータを取得する必要がある途中で誰か助けてもらえますか?