JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
练习示例:
效果图:
首先要创建实体类User.java:
public class User { Integer id; String name; String sex; public User() { super(); // TODO Auto-generated constructor stub } public User(Integer id, String name, String sex) { super(); this.id = id; this.name = name; this.sex = sex; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
json .jsp
<body> <table border="1px" align="center"> <thead> <tr> <th>id号</th> <th>姓名</th> <th>性别</th> </tr> </thead> <tbody id="users"> </tbody> </table> </body>
<script type="text/javascript"> <!-- window.onload=function(){ //获取xhr对象 var xmlHttp = createXmlHttpRequest(); xmlHttp.onreadystatechange = function() { //判断 服务器是否正确返回 相应信息 if (xmlHttp.readyState == 4) { //接受数据 var jsonStr =xmlHttp.responseText; var jsonEmps = eval("("+jsonStr+")"); display(jsonEmps); } } ////规定请求的类型 xmlHttp.open("GET", "./ListServlet?timeStamp=" + new Date().getTime(), true); //发送请求 xmlHttp.send(null); } function display(obj){ var users=document.getElementById("users"); for(var i=0;i<obj.length;i++){ //创建tr var tr=document.createElement("tr"); //创建td var td1=document.createElement("td"); var td2=document.createElement("td"); var td3=document.createElement("td"); //添加文本 td1.appendChild(document.createTextNode(obj[i].id)); td2.appendChild(document.createTextNode(obj[i].name)); td3.appendChild(document.createTextNode(obj[i].sex)); //添加到tr中 tr.appendChild(td1); tr.appendChild(td2); tr.appendChild(td3); //添加到users中 users.appendChild(tr); } } function createXmlHttpRequest(){ var xmlHttp; try { //Firefox, Opera 8.0+, Safari xmlHttp = new XMLHttpRequest(); } catch (e) { try { //Internet Explorer xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } } } return xmlHttp; } //--> </script>
最后是servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); List<User> list=new ArrayList<User>(); for(int i=0;i<5;i++){ User user=new User(i,"ren"+i,"nv"); list.add(user); } String json=JSONArray.fromObject(list).toString(); response.setContentType("text/html;charset=UTF-8"); PrintWriter out=response.getWriter(); out.print(json); System.out.println("as"); }