Servlet如何获取ajax中以json格式传入的数据?
来源:互联网 发布:数据字典 编辑:程序博客网 时间:2024/06/03 12:23
$('#but_json_json').click(function(){
var j ={"name":"王","password":123456};
$.ajax(
{
url:"servlet/JsonObject", //访问路径
type:"POST", //访问方式
data:j, //传入服务端的数据
dataType:"json",
contentType:"application/json;charset=utf-8",
success : function(data){
alert(data);
alert(data.name);
alert(data.password);
}
}
);
});
Servlet:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String user = request.getParameter("j");
String name = request.getParameter("name");
String password = request.getParameter("password");
System.out.println(user);
//JSON对象
JSONObject jsonObject = new JSONObject();
jsonObject.accumulate("password", password).accumulate("name", "www");
response.setContentType("application/json");
response.getWriter().write(jsonObject.toString());
}
现在的问题是,我可以从客户端将Servlet中传出的数据解析,如上面的name=www,但客户端传入的对象
(var j ={"name":"王","password":123456})在Servlet中取不到,好像是说要先去对象,我觉得应该是,
毕竟json提供了很多方法将取到到的json数据转换为别的格式,但还是搞不懂。本人新手,第一次接触,希望知道的朋友指定一下,感激不尽!
答:
我是这样理解的 首先 对你要传递 给 服务器(servlet)的 json序列化 用JSON.stringify,
确保我们传递的字符串 符合 json 结构 ,由于我们传递的数据 是以流的形式 传递到服务器,所以我们应该在
服务器端 读进缓冲区 在转换字符串输出
public String readJSONString(HttpServletRequest request){
StringBuffer json = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while((line = reader.readLine()) != null) {
json.append(line);
}
}
catch(Exception e) {
System.out.println(e.toString());
}
return json.toString();
}
} 之后 再转成 jsonObject 对象。就可以取到值了
还有一点 要注意 编码格式
var j ={"name":"王","password":123456};
$.ajax(
{
url:"servlet/JsonObject", //访问路径
type:"POST", //访问方式
data:j, //传入服务端的数据
dataType:"json",
contentType:"application/json;charset=utf-8",
success : function(data){
alert(data);
alert(data.name);
alert(data.password);
}
}
);
});
Servlet:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String user = request.getParameter("j");
String name = request.getParameter("name");
String password = request.getParameter("password");
System.out.println(user);
//JSON对象
JSONObject jsonObject = new JSONObject();
jsonObject.accumulate("password", password).accumulate("name", "www");
response.setContentType("application/json");
response.getWriter().write(jsonObject.toString());
}
现在的问题是,我可以从客户端将Servlet中传出的数据解析,如上面的name=www,但客户端传入的对象
(var j ={"name":"王","password":123456})在Servlet中取不到,好像是说要先去对象,我觉得应该是,
毕竟json提供了很多方法将取到到的json数据转换为别的格式,但还是搞不懂。本人新手,第一次接触,希望知道的朋友指定一下,感激不尽!
答:
我是这样理解的 首先 对你要传递 给 服务器(servlet)的 json序列化 用JSON.stringify,
确保我们传递的字符串 符合 json 结构 ,由于我们传递的数据 是以流的形式 传递到服务器,所以我们应该在
服务器端 读进缓冲区 在转换字符串输出
public String readJSONString(HttpServletRequest request){
StringBuffer json = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while((line = reader.readLine()) != null) {
json.append(line);
}
}
catch(Exception e) {
System.out.println(e.toString());
}
return json.toString();
}
} 之后 再转成 jsonObject 对象。就可以取到值了
还有一点 要注意 编码格式
0 0
- Servlet如何获取ajax中以json格式传入的数据
- Servlet如何获取ajax中以json格式传入的数据?
- servlet以json格式向ajax传送数据并处理
- 关于servlet中不能获取前台传入的json数据的问题
- .NET如何处理AJAX传入的JSON数据
- 如何获取表格中的数据并以json格式存储?
- ajax--json格式获取数据
- ajax获取json格式数据
- ajax异步 servlet返回json格式数据注意 “ ‘ 的区别
- jQuery中使用Ajax获取JSON格式数据
- jQuery中使用Ajax获取JSON格式数据
- jQuery中使用Ajax获取JSON格式数据示例代码
- jQuery中使用Ajax获取JSON格式数据示例代码
- ajax json格式数据的获取(一)
- 一个原生Ajax获取JSON格式数据的例子
- jQuery如何向后台传入json格式数据
- 如何使用ajax将json传入后台数据
- ajax以json格式返回的函数
- Windows 窗口层次关系及窗口层次说明
- github或者gitlab上fork别人的代码后更新的2种解决方式
- LeetCode 213. House Robber II
- 一个网站完整的SEO优化方案(这是网站设计我看来最重要的内容了)
- IDEA中maven项目依赖的包下载过慢
- Servlet如何获取ajax中以json格式传入的数据?
- LeetCode 62. Unique Paths
- 蒙特卡洛树搜索 MCTS
- 语音识别的技术原理是什么?
- 解决linux下curl扩展的方法
- 使用TensorFlow实现RNN模型入门篇
- 父元素高度无法适配子元素的原因
- JSONP跨域请求数据报错 “Unexpected token :”的解决办法
- cookie和session