1.说明
由于一般情况下,由浏览器(前端)发送请求,服务器(后台)响应json数据,所以这里结合js进行说明;
A服务器发送请求至B服务器,并接收其返回的json数据,见文末推荐,这里不再赘述!
2.服务器返回json数据
方式一:返回JSON格式数据(JSON对象)
/** * 返回json * @param request * @param response * @param session */ @RequestMapping("/returnjson") public void returnjson(HttpServletRequest request,HttpServletResponse response, HttpSession session) { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); PrintWriter wirte = null; JSONObject json = new JSONObject(); try { wirte = response.getWriter(); if(1==1){ json.put("等式成立", "yes"); }else{ json.put("等式不成立", "no"); } } catch (Exception e) { e.printStackTrace(); }finally{ wirte.print(json); wirte.flush(); wirte.close(); }response.getWriter().print(jo); }
方式二:返回JSON格式字符串(JSON字符串)
// 设置返回字符集 response.setContentType("charset=utf-8"); String result = "{"name":"Marydon"}"; // 返回数据 response.getWriter().print(result);
3.客户端接收并处理json数据
对于第一种返回格式
$.get();$.ajax();$.post();$.getJSON()这4种方式不用再做多余的处理,直接就能取值。
$.post(baseUrl + "/test.do",function(result){ alert(result.name);// Marydon });
对于第二种返回格式
$.get();$.ajax();$.post();这三种方式需要对数据进行处理,才能取值;
$.get(baseUrl + "/test.do",function(result){ // json字符串-->json对象 result = eval('(' + result + ')'); alert(result.name);// Marydon });
$.getJSON();这种方式直接就能取值,无需再做处理。
$.getJSON(baseUrl + "/test.do",function(result){ alert(result.name);// Marydon });