struts操作类中的JSON对象变为null

struts操作类中的JSON对象变为null,json,class,struts,struts-action,Json,Class,Struts,Struts Action,我在struts 1.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 JSON

我在struts 1.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
 }
这条线是空的

request.getParameter("data");
当解析时,它给出异常

 JSONObject newObj = jObj.getJSONObject(request.getParameter("data"));
我到底做错了什么。这我不明白 是我的json数据格式错误还是其他原因 任何暗示都会对我大有裨益

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

$.ajax({
type: "POST",
url: "addtier.do",
dataType: "json"
data: dataobj;
});
似乎您正在将数据参数设置为
data?=[Object]

尝试
console.log('data?='+dataobj)
如果您应该为它提供一个字符串而不是一个jaon对象,那么您首先需要
JSON.stringify(dataobj)

另一个问题是,可能需要发送一个json对象而不是json数组,因此它仍然无法工作。请尝试确保dataobj是:
{data:[{key:“val”,key2:“val2”}]}

您可以使用以下方法:

String jsonData = request.getReader().readLine();
与此相反:

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

注意:在Javascript中使用POST-send(jsonData)

如果我想让json对象作为字符串发布,那么我必须像这样做json.stringify(dataobj)$.ajax({type:“POST”,url:“addtier.do”,dataType:“text”data:json.stringify(dataobj);});我是一个非常新的ajax和json,这样行吗