0

本当にテストするために、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]"

オブジェクトからこのデータを取得する必要がある途中で誰か助けてもらえますか?

4

2 に答える 2

1

あなたのAJAX呼び出しでは、data: "jsonData=" + parsedJsonObjectあなたが意図したことをしません:

[object Object]探している JSON 表現ではなく、 のような文字列を提供するだけです。

data: "jsonData=" + JSON.stringify(parsedJsonObject)または同等の jQueryを使用します。

于 2012-06-30T11:00:51.250 に答える
0

http://www.kodejava.org/examples/585.html

それを同じフィールドにマップするクラスが必要です。送信しているフィールドと、マップしようとしているクラスのフィールドは何ですか?

ここに JSON を貼り付けて、問題なく、無効ではなく、フィールドが一致していることを確認します。

http://jsonformatter.curiousconcept.com/

http://jsonviewer.stack.hu/

http://www.jsonviewer.com/

または JSON プラグインを入手する

https://addons.mozilla.org/en-US/firefox/addon/jsonview/

于 2012-06-30T12:01:04.443 に答える