我想将JSON对象从JavaScript发布到java serverlet。 我使用了以下javaScript代码:
var a = {};
function SaveInfo(c)
{
document.getElementById("saveButton").className = "savebutton";
document.getElementById("cancelButton").className = "cancebutton";
var z= $(c).parent().parent().attr('id');
a[z] = c.value;
}
$("#saveButton").click(function(e){
if( document.getElementById("saveButton").className=="savebutton")
$.ajax({
url: "../../update",
type: 'POST',
dataType: 'json',
data: JSON.stringify(a),
contentType: 'application/json',
mimeType: 'application/json',
success: function (data) {
consol.log(data);
},
error:function(data,status,er) {
alert("error: "+data+" status: "+status+" er:"+er);
}
});
});
以及以下java代码:
public void doPost(HttpServletRequest req, HttpServletResponse res){
JSONObject jObj;
jObj = new JSONObject(req.getParameter("mydata")); // this parses the json
Iterator it = jObj.keys();
while(it.hasNext())
{
String key = (String)it.next(); // get key
Object o = jObj.get(key); // get value
// store in session
}
}
JSON已成功收到。 问题是没有构造函数:
jObj = new JSONObject(req.getParameter("mydata"));
我想读取通过javascript传递的值和密钥。
答案 0 :(得分:0)
尝试以下方法:
JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(req.getParameter("mydata").toString());
答案 1 :(得分:0)
出于您的目的,您只需使用表单,只需解析它:
Map<String, String[]> map = request.getParameterMap();
for(Entry<String, String[]> e : map.entrySet()){
response.getWriter().write(e.getKey() + ":" + e.getValue()[0] + "\n");
}
当您想要发送对象或复杂数据阵列等时使用json。
希望完成你的工作。