0

私はstruts1.3で作業しており、jsonオブジェクトをjavascriptに構築し、JSONオブジェクトをstrutsアクションクラスに渡しますが、jsonを受信すると、nullが発生します。これがサンプルコードです。

 var dataobj=[{code:c1,name:n1}];

$.ajax({
type: "POST",
url: "addtier.do",
dataType: "json"
data: "data?="+dataobj;
});

アクションクラスコード

 JSONObject jObj    = new JSONObject();
 JSONObject newObj = jObj.getJSONObject(request.getParameter("data"));
 Enumeration eNames = newObj.keys(); //gets all the keys

 while(eNames.hasNextElement())
 {
     // Here I need to retrieve the values of the JSON string
     // and add it to the session
 }

この行はnullになります

request.getParameter("data");

解析すると例外が発生します

 JSONObject newObj = jObj.getJSONObject(request.getParameter("data"));

実際に何が間違っているのか。これは私が理解していないのは、私のjsonデータが間違った形式であるか、他の何かのヒントが私の大きな助けになるでしょう

4

2 に答える 2

0
var dataobj=[{code:c1,name:n1}];

$.ajax({
type: "POST",
url: "addtier.do",
dataType: "json"
data: dataobj;
});

data パラメータを に設定しているようですdata?=[Object]

試してみるconsole.log('data?='+dataobj);と、私が何を意味するかがわかります。

jaon オブジェクトではなく文字列を指定する必要がある場合は、JSON.stringify(dataobj)最初に指定する必要があります。

また、別の問題は、json 配列ではなく json オブジェクトを送信する必要がある場合があるため、まだ動作しないため、dataobj が次のようになっていることを確認してください。{data:[{key:"val",key2:"val2"}]}

于 2012-07-02T05:08:10.180 に答える
0

これを使用できます:

String jsonData = request.getReader().readLine();

これの代わりに :

String jsonData = request.getParameter("data");

注:JavascriptでPOST send(jsonData)を使用してください

于 2013-11-12T13:01:13.177 に答える