您的位置:首页 > Web前端 > JavaScript

Javascript 解析 Servlet 返回的 JSON

2013-07-24 15:03 344 查看



看到大家都是用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 onclick="getJson();">请求json</button>
</body>
</html>




这样就实现了,Javascript 解析 Servlet 返回的 JSON,大家可以在此扩展。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: