一、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     @Override
22     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.3
75         }
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.3
91             //Oracle 11g精华 42.3
92         }
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 });

Java中JSON的简单使用与前端解析的更多相关文章

  1. Java中JSON字符串与java对象的互换实例详解

    这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...

  2. java中 json和bean list map之间的互相转换总结

    JSON 与 对象 .集合 之间的转换 JSON字符串和java对象的互转[json-lib]   在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级 ...

  3. (转)Java中JSON字符串与java对象的互换实例详解

    在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...

  4. Python中json的简单读写操作

    Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...

  5. Java中JSON字符串与java对象的互换实例详解(转)

    http://www.jb51.net/article/90914.htm 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要 ...

  6. 多线程(三) java中线程的简单使用

    java中,启动线程通常是通过Thread或其子类通过调用start()方法启动. 常见使用线程有两种:实现Runnable接口和继承Thread.而继承Thread亦或使用TimerTask其底层依 ...

  7. js中json数据简单处理(JSON.parse()和js中嵌套html)

    js中json数据简单处理(JSON.parse()和js中嵌套html) 一.总结 1.html中嵌套js:<script>js代码</script> 2.js中嵌套html ...

  8. servlet+ajax+json字符串后台传入,前端解析并把数据循环填入表格实例

    写在前面:1.源代码来源于博客http://blog.sina.com.cn/u/2904067371 ,在此基础上对于前端代码稍作更改,把传过来的数据解析并传入表格2.json解析,用eval()3 ...

  9. Java中有关构造函数的一道笔试题解析

    Java中有关构造函数的一道笔试题解析 1.详细题目例如以下 下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与c ...

随机推荐

  1. Android类库打包方法探究

    原文地址: http://www.cnblogs.com/wangchuanju/archive/2012/04/05/android_lib_jar.html 开发Android应用的时候,对于可用 ...

  2. 百度云管家-V4.6.1-单文件版绿色版

    转载说明 本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/baidu-is-clouds-butler-v4-6-1-single-file-green-edition ...

  3. [CSS]浮动的那点事儿

    元素是怎样浮动 元素的水平方向浮动,意味着元素只能左右移动而不能上下移动. 一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 浮动元素之后的元素将围绕它. 浮动元素 ...

  4. linux与windows共享剪贴板(clipboard)

    linux与windows共享剪贴板(clipboard)的方法 先说两句废话,其实linux和windows之间不需要共享剪贴板,直接在putty中,按住SHIFT+鼠标选择就可以了. 但是作为一种 ...

  5. [转]SET NOCOUNT ON

    ref: http://www.cnblogs.com/jayleke/archive/2010/07/10/1774758.html 在存储过程,触发器中,经常用到SET NOCOUNT ON: 作 ...

  6. “Cache-control”常见的取值有private、no-cache、max-age、must-revalidate等

    网页的缓存由HTTP消息头中的"Cache-Control" 来控制的,常见的取值有private.no-cache.max-age.must-revalidate等,默认为pri ...

  7. psp系统需求分析

    软件开发方向“PSP系统”软件需求规约 目录 1 引言... 4 1.1 目的... 4 1.2 文档格式... 4 1.3 预期的读者和阅读建议... 4 1.4 范围... 5 1.5 术语... ...

  8. 数据可视化(一)-Matplotlib简易入门

    本节的内容来源:https://www.dataquest.io/mission/10/plotting-basics 本节的数据来源:https://archive.ics.uci.edu/ml/d ...

  9. 【原创】一起学C++ 之->(箭头符号) ---------C++ primer plus(第6版)

    1.C++新手在指定结构成员时,不知道何时用.运算符,何时是用->运算符. 结论:如果结构标识符是结构名,则使用句点运算符:如果标识符是指向结构的指针,则使用箭头运算符. #include &l ...

  10. 自动化运维——一键安装MySQL

    根据项目需要,前段时间在搞EMM系统各种安装包的自动化部署工作,主要包括一键安装和一键启动\停止功能.总结记录下来,以供后用. 本文主要是自动安装MySQL5.7.11版,Linux版脚本在CentO ...