看到大家都是用JQuery来 解析Servlet 返回的 JSON,现在给大家实现直接用javascript来解析Javascript 解析 Servlet 返回的 JSON,比较简单,直接看例子。
Servlet 代码:
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ReturnJson extends HttpServlet
{
private static final long serialVersionUID = 1L;
public ReturnJson()
{
super();
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
StringBuilder sb = new StringBuilder();
// json 的格式,之一别写错了
sb.append("{\"name\":\"shaoren\",\"age\":\"21\"}");
PrintWriter out= response.getWriter();
out.write(sb.toString());
}
}
页面代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> //得到ajax 实例 function getXMLHttp() { var ajax; if(window.XMLHttpRequest) { // 针对IE7+, ajax = new XMLHttpRequest(); }else { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } return ajax; } function getStudentInfoById(serverPage) { var ajax = getXMLHttp(); ajax.open("post", serverPage, true); ajax.setRequestHeader("Content-Type", "text/html;charset=UTF-8"); ajax.onreadystatechange = function() { if (ajax.readyState == 4 && ajax.status == 200) { // 使用eval()函数解析 JSON,注意里面的 圆括号,不然它不解析哦 var json = eval("("+ajax.responseText+")"); // 这是结果 alert("name="+json.name+"&age="+json.age); } }; //发送请求 ajax.send(null); } function getJson() { // 表单名称 var path = "ReturnJson"; getStudentInfoById(path); } </script> </head> <body> <button οnclick="getJson();">请求json</button> </body> </html>
这样就实现了,Javascript 解析 Servlet 返回的 JSON,大家可以在此扩展。