json小例子

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

private List<book> booklist;
}
然后,配置struts.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.i18n.encoding" value="gbk"/> <package name="getjson" extends="json-default" namespace="/"> <action name="getjson" class="org.myjson.action.JsonAction"> <result name="success" type="json"></result> </action> 这里要注意几个与众不同的地方 </package> 1.Action所在的package,它的extends一定要是刚才看到的 </struts> json-default
ackage org.myjson.action; import java.util.ArrayList; import java.util.List; import com.opensymphony.xwork2.ActionSupport; import org.myjson.entity.book;
2.创建一个myjson.jsp的文件
table> <tr><td>title</td><td>author</td></tr> <tr><td id="0"></td><td id="0a"></td></tr> <tr><td id="1"></td><td id="1a"></td></tr> <tr><td id="2"></td><td id="2a"></td></tr> </table> Html代码 Jquery代码 向url发送请求,规定数据类 型为json,这样取回的数据 就以json对象的形式存在 就可以像遍历数组一样遍历 json <script src="js/jquery1.12.3.js"></script> <script> $(document).ready(function(){ $.ajax({ url:"books/book.json", type:"get", dataType:"json", error:function(){alert("文件加载失败! ");}, success:function(json){ for(i=0;i<json.books.length;i++) { $("#"+i).html(json.books[i].title); $("#"+i+"a").html(json.books[i].author); } } }); }); </script>
是不是神奇?使用json的好处
• 服务器和浏览器都支持json格式,jquery解 析数据非常方便,显示数据也方便 • 编写代码时风格跟过去一致 • Json在写法上比xml更加简单 • 据说速度更快
思考:我们想把服务器端的对象发 送到浏览器端,让jquery用json格式 显示出来,能做到吗?
首先,在根目录下
• 建立一个叫books的文件夹 • 在books里面建一个叫book.json的文本文档
/books/book.json
{ "books": [ { "title":"A", "author":“zhangsan", "country":"China" }, { "title":"B", "author":"lisi", "country":"USA" }, { "title":"C", "author":"wangwu", "country":"China" } ] }
Json 的struts2 jar包
struts2-json-plugin-2.3.4.1.jar
• 把这个文件拷到lib文件夹下 • Struts2就可以支持json数据了!
打开jar包,里面有个strutsplugin.xml文件
<struts> <package name="json-default" extends="struts-default"> <result-types> <result-type name="json" class="org.apache.struts2.json.JSONResult"/> </result-types>
• 当然可以! • 不光可以,用struts2来做,更加方便。
第二个例子:
• • • • • • • • • 导入struts2支持json的jar包 创建Action 创建对象 创建数组 把对象放到数组里 配置struts.xml文件 浏览器端发送json请求 Action将数据返回给浏览器 浏览器显示数据
这个文件里有个叫做json-default的package,里面有个叫做json的result,
接下来我们就要用到它。
下面我们建一个实体类,用来描述 数组里的对象
package org.myjson.entity; public class book { private String title; private String author; private String country; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; }
<body> This is index page. <br> <table> <tr><td>title</td><td>author</td></tr> <tr><td id="0"></td><td id="0a"></td></tr> <tr><td id="1"></td><td id="1a"></td></tr> <tr><td id="2"></td><td id="2a"></td></tr> </table> </body>
实体类book,有3个私 有成员,分别对应json 的3个数据名称
}Hale Waihona Puke Baidu
接下来我们要创建一个action
public String execute() { booklist = new ArrayList<book>(); bk = new book(); bk.setAuthor("张三"); public class JsonAction extends ActionSupport { bk.setCountry("USA"); private book bk; 实例化了两个 bk.setTitle("A"); public book getBk() { book对象,添加 booklist.add(bk); return bk;} 到arraylist对象 bk = new book(); public void setBk(book bk) { booklist中去,然 bk.setAuthor("李四"); this.bk = bk;} 后,return success! bk.setCountry("China"); public List<book> getBooklist() { bk.setTitle("B"); return booklist;} booklist.add(bk); public void setBooklist(List<book> booklist) { return SUCCESS; this.booklist = booklist; } }
这里出现的booklist Booklist[i].title等,和action里的私 有成员完全一致。
完成!
我们可以看到
• 在服务器(struts2框架)支持下,在浏览器 (jquery)的支持下,json的使用让程序员 的工作变得轻松愉快,数据的转换工作, 框架已经替我们完成了,数据的显示工作, 由于jquery DOM的存在,变得简洁清爽。
Json小例子
下面我们通过小例子来了解json
• 第一个例子,向服务器发送请求,数据在 json文件里
• 第二个例子,向服务器发送请求,数据由 服务器生成
第一个例子,向服务器请求json文件
1.在服务器端写一个json文件 2.在浏览器端写jquery代码,向服务器发送请 求,同时规定请求数据是json类型 3.在浏览器端将json数据显示出来
2.和action的return success 对应的result,要加一个属性,其 值是json
最后,完成jsp页面
<script src="js/jquery-1.12.3.js"></script> <script> $(document).ready(function(){ $.ajax({ url:"getjson", type:"get", dataType:"json", error:function(){alert("文件加载失败!");}, success:function(json){ for(i=0;i<json.booklist.length;i++) { $("#"+i).html(json.booklist[i].title); $("#"+i+"a").html(json.booklist[i].author); } } }); }); </script>
相关文档
最新文档