JSON轻量级数据使用和解析
来源:互联网 发布:中小学信息化数据库 编辑:程序博客网 时间:2024/05/01 03:50
一、JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 JSON采用完全独立于语言的文本格式。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
JSON与XML的对比(引用自:sanpintian的CSDN博客):
1、可读性:JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。
2、可扩展性:XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
3、编码难度:XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
4、解码难度:XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
5、流行度:XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。
二、导包
使用JSON需要导入以下包:
commons-beanutils.jar
commons-logging.jar
commons-lang.jar
commons-collection.jar
ezmorph.jar
json-lib.jar
三、实现
Book类的实现:
1 public class Book { 2 private String name; 3 private double price; 4 5 public String getName() { 6 return name; 7 } 8 9 public void setName(String name) {10 this.name = name;11 }12 13 public double getPrice() {14 return price;15 }16 17 public void setPrice(double price) {18 this.price = price;19 }20 21 @Override22 public String toString() {23 return name+" "+price;24 }25 }
1 /** 2 * @author ZWQ 3 * **/ 4 public class JsonTest { 5 public static void main(String[] args) { 6 //*********************************************************************** 7 // json基本测试 8 { 9 //新建一个JSON数组10 JSONArray jsonArray = new JSONArray();11 //新建一个JSON对象12 JSONObject json1 = new JSONObject();13 json1.put("id", "1");14 json1.put("name", "张三");15 json1.put("password", "123456");16 //将JSON对象添加到JSON数组中去17 jsonArray.add(json1);18 19 JSONObject json2 = new JSONObject();20 json2.put("id", "2");21 json2.put("name", "李四");22 json2.put("password", "654321");23 jsonArray.add(json2);24 System.out.println("json数组基本测试:" + jsonArray);25 26 //结果:27 //[{"id":"1","name":"张三","password":"123456"},{"id":"2","name":"李四","password":"654321"}]28 }29 30 //***********************************************************************31 //将对象转成JSON字符串32 {33 Book book = new Book();34 book.setName("Java入门教程");35 book.setPrice(52.3);36 //将Java对象转成JSON对象37 JSONObject jsonObject = JSONObject.fromObject(book);38 System.out.println("从Object到JSONObject:" + jsonObject.toString());39 40 //结果:41 //从Object到JSONObject:{"name":"Java入门教程","price":52.3}42 }43 44 //***********************************************************************45 //将对象集合转成JSON字符串46 {47 List<Book> list = new ArrayList<Book>();48 Book book1 = new Book();49 book1.setName("高等数学I");50 book1.setPrice(34.1);51 Book book2 = new Book();52 book2.setName("线性代数");53 book2.setPrice(12.7);54 list.add(book1);55 list.add(book2);56 //将List集合转为JSON数组57 JSONArray jsonArray= JSONArray.fromObject(list);58 System.out.println("从Object集合到JSONArray:" + jsonArray.toString());59 60 //结果:61 //从Object集合到JSONArray:[{"name":"高等数学I","price":34.1},{"name":"线性代数","price":12.7}]62 }63 64 //***********************************************************************65 // 将JSON字符串转为Java对象66 {67 String jsonString = "{name:'数据结构',price:52.3}";68 JSONObject jsonObject = JSONObject.fromObject(jsonString);69 //将JSON对象转为Java对象70 Book book = (Book) JSONObject.toBean(jsonObject, Book.class);71 System.out.println(book.toString());72 73 //结果:74 //数据结构 52.375 }76 77 //***********************************************************************78 //将JSON字符串转为Java对象数组79 {80 // (2).Bean的数组81 String jsonsString = "[{name:'数据库基础',price:52.3},{name:'Oracle 11g精华',price:42.3}]";82 JSONArray jsonArray = JSONArray.fromObject(jsonsString);83 //将JSON数组转为Java对象数组84 Book[] books = (Book[]) JSONArray.toArray(jsonArray, Book.class);85 for (Book b : books) {86 System.out.println(b.toString());87 }88 89 //结果:90 //数据库基础 52.391 //Oracle 11g精华 42.392 }93 }94 }
四、前端解析
1 //Jquery提供的获取json的方法 2 //使用前先导入Jquery 3 4 $('#button').click(function(){ 5 //url:请求的地址 6 $.getJSON('url', { 7 //id是需要传的参数 8 id: 1 9 }, function(data) {//成功后data即为获取的json字符串10 //例如data:[{"name":"高等数学I","price":34.1},{"name":"线性代数","price":12.7}]11 alert("第二本书是:"+data[1].name+" 价格是:"+data[1].price);12 });13 });
- JSON轻量级数据使用和解析
- 使用数据模型抓取和解析JSON数据
- 使用Gson生成和解析json数据
- 使用Json解析Json数据
- Java使用org.json.jar构造和解析Json数据
- JSON 轻量级数据交换
- 使用Gson解析Json的一条数据和一组数据
- C++ 使用Json封装数据和解析数据
- Android中Json数据解析(二)--使用Gson、Jackson和FastJson解析Json数据
- Android中Json数据解析(二)--使用Gson、Jackson和FastJson解析Json数据
- Android进阶——使用Pull解析和生成轻量级数据XML
- 使用jQuery解析JSON数据
- 使用jQuery解析JSON数据
- 使用jQuery解析JSON数据
- 使用jQuery解析JSON数据
- 使用jQuery解析JSON数据
- 使用jsoncpp解析JSON数据
- 使用GSON 解析JSON 数据
- sdfsdfasdfsadf
- freemarker字符串拼接
- 条款05:了解C++默默编写并调用哪些函数
- 关于代码版本管理提升开发效率的一些想法
- 登陆页面的form表单中存在radio时,鼠标点到radio时,回车提交快捷键功能消失的解决办法
- JSON轻量级数据使用和解析
- 算法的时间复杂度和空间复杂度-总结
- Git实战(四)状态转换
- UML类图关系的介绍
- xml写法
- Java面向对象 网络编程 上
- Java面向对象 网络编程 下
- 提升工作效率--小工具ditto(剪贴板增强软件)
- Java面向对象 正则表达式