0

我在 struts 1.3 中工作,我正在将 json 对象构造成 javascript 并将 JSON 对象传递给我的 struts 动作类,但是当我收到 json 时,它是空的,这是我的示例代码

 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
 }

这条线即将为空

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 回答