一、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. Oracle用户system解锁

    1.首先进入sql plus窗口(参见上一篇文章) 2.进入后:输入select username,account_status from dba_users where username='SYST ...

  2. Error LNK2001 无法解析的外部符号 的几种情况及解决办法

    最近遇到的关于VS里编译出现的“无法解析的外部符号”问题,在网上寻求解决办=办法时查到下面的博客内容,作者讲解的挺全面的,作为收藏以备将来查询. 原文http://blog.csdn.net/shen ...

  3. C/C++笔试题目

    1. C语言中无符号数与有符号数 unsigned ; ; printf( printf( ? 有符号数和无符号数在进行比较运算时(==,>=,<=,>,<),有符号数隐式的转 ...

  4. 【转载】学习C++和编程的几个要点

    1.把C++当成一门新的语言学习(和C没啥关系!真的.):2.看<ThinkingIn C++>,不要看<C++变成死相>:3.看<The C++ Programming ...

  5. Jquery 禁用 a 标签 onclick 事件30秒后可用

    <a href="javascript:;" id="sendToTel" >发送短信</a> <script type=&quo ...

  6. swfupload使用说明

    网上的例子介绍的文档真的很多.下面简单介绍一下 SWFUpload的文件上传流程是这样的: 1.引入相应的js文件 2.实例化SWFUpload对象,传入一个配置参数对象进行各方面的配置. 3.点击S ...

  7. 通用SQL存储过程分页以及asp.net后台调用

    创建表格并添加300万数据 use Stored CREATE TABLE UserInfo( --创建表 id ,) PRIMARY KEY not null,--添加主键和标识列 UserName ...

  8. [DevExpress]ChartControl之创建X,Y轴Title示例

    关键代码: /// <summary> /// 设置X轴Title /// </summary> /// <param name="chart"> ...

  9. Kakfa揭秘 Day1 Kafka原理内幕

    Spark Streaming揭秘 Day32 Kafka原理内幕 今天开始,会有几天的时间,和大家研究下Kafka.在大数据处理体系中,kafka的重要性不亚于SparkStreaming.可以认为 ...

  10. ubuntu12.04 server + apache2 + wsgi + django1.6 部署

    最近在学Python和Django,想自己部署一个服务器试试 环境:ubuntu12.04 server | apache2 | django1.6 | python2.7 | mod_wsgi 在网 ...