struts操作类中的JSON对象变为null
我在struts 1.3中工作,我正在将json对象构造成javascript,并将json对象传递给我的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
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,这样行吗