我正在使用客户端的AJAX请求和服务器端的Servlet开发一个Web应用程序。
我的目标是将Javascript对象发送到服务器,然后在那里进行一些操作并将其发送回此处显示。
假设我的js对象是
var obj={hero:"Spiderman",name:"Peter Parker"};
我的方法
1.将obj转换为JSON字符串并发送
var str= JSON.stringify(obj);
xmlhttp.open("POST",myurl,true);
xmlhttp.setRequestHeader("Content-Type","application/json",true);
xmlhttp.send("data="+str);
2。接收字符串,将其转换回JSON,将“name”操作为“Bruce Wayne”并将其作为字符串发送回来
3.Recieve并转换回Json
var data= JSON.parse(xmlhttp.responseText);
我在第二点苦苦挣扎。我正在使用org.json。我搜索并阅读了文档,但是在我的上下文中找不到将字符串转换为json和反之亦然的JAVA的完整答案。
提供简单的工作代码或指向我可以学习的一些链接真的很有帮助。
P.S:
我不能使用Jquery,因为我正在使用AngularJS。 See Why?
我将始终发送有效的JSON字符串。
我可以使用其他JSON lib。如果它比org.json好,并满足我的需求。 请提供其jar下载链接。
答案 0 :(得分:1)
假设您能够在服务器代码中提取data
您可以使用org.json
:
JSONParser parser = new JSONParser();
JSONObject requestObj = (JSONObject) parser.parse(data);
String name = (string)requestObj.get("name");
name = "Bruce Wayne";
创建响应的代码可能如下所示:
JSONObject response = new JSONObject();
response.put("name",name);
return response.toJSONString();
这假设您的服务器方法返回String
类型
如果您使用Servlet,可以使用HttpServletResponse
对象res
创建响应,如:
res.setContentType("application/json");
OutputStream os = res.getOutputStream();
os.write(response.toString().getBytes());
os.close();