Java中JSON的简单使用与前端解析

 一、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 });

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-11-05 12:07:09

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

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

在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好,下面先看下JSON的格式, JSON可以有两种格式,一种是对象格式的,另一种是数组对象, {"name":"JSON","address":"北京市西城区","age":25}//JSON的对象格式的字符串 [

Java中Json字符串直接转换为对象的方法(包括多层List集合)_java

使用到的类:net.sf.json.JSONObject  使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar 下面是例子代码: // JSON转换 JSONObject jsonObj = JSONObject.fromObject(jsonSt

java中json对象是如何创建或者转换出来的

问题描述 java中json对象是如何创建或者转换出来的 可以像类的对象那样子new出来吗,类的对象和json对象有何区别和联系,不好意思在csdn高手云集的地方问这么新手的问题 解决方案 是从java对象转换过去的.看这里http://blog.csdn.net/evankaka/article/details/46741577 解决方案二: java中各种对象转换为JSONJSON对象数组到Java的转换Google-gson, 将JSON 转换为 Java 对象或者将Java对象转换成JS

C#中Json的简单处理方法_C#教程

命名空间:Windows.Data.Json 在Windows Runtime中,可以使用Json类对获取的Json字符串进行操作,相比DataContractJsonSerializer类操作更加直观. 例如获取一个绕口令API返回的Json中的对象: //返回的Json字符串: { "code":200, "msg":"success", "newslist":[ { "content":"小

java中JSON库JSON.simple/GSON/Jackson/JSONP性能对比

JSON因为其易于人阅读和编写,同时也易于机器解析和生成,兼容性强,已经成为当前服务器与WEB应用之间数据传输的公认标准.本文我们在java编程语言运行了一个基准测试来对常用的几个JSON库进行了测试,看看在解析不同大小的文件时库的速度是最快性能最好的是哪个库. JSON通常用于传输及解析大文件.这对运行在Hadoop或者是Spark集群上的数据处理程序而言是个很常见的场景.在给定的文件大小下,你可以看到不同库之间的解析速度存在着明显的差别. 高吞吐量的情况下,会频繁地传输并解析小文件,因此一开

java中lambda表达式简单用例_java

我对java中lambda表达式的看法是相当纠结的: 一个我这么想:lambda表达式降低了java程序的阅读体验.java程序一直不以表现力出众,正相反使Java流行的一个因素正是它的安全和保守--即使是初学者只要注意些也能写出健壮且容易维护的代码来.lambda表达式对开发人员的要求相对来说高了一层,因此也增加了一些维护难度. 另一个我这么想:作为一个码代码的,有必要学习并接受语言的新特性.如果只是因为它的阅读体验差就放弃它在表现力方面的长处,那么即使是三目表达式也有人觉得理解起来困难呢.语

java中struts2实现简单的文件上传与下载_java

一.Struts2文件上传 Struts2的文件上传实现非常简单,只需要简单几步就可完成:注意: (1)文件上传的struts2标签为:<s:file name="" label="上传"/> (2)文件上传的前提是表单属性method="post" enctype="multipart/form-data"; (3)web应用中必须包含common-fileupload.jar和common-io.jar,因为s

Java中Json数据的测试代码

JSON是一种很简洁很重要的数据格式,通常用来交换传输数据,广泛使用于JavaScript技术中,并逐渐在各种流行编程语言中火了起来.在Java中也有一个JSON的库,用来重要作用就是Java对象与JSON.XML数据的相互转换,有着重要的应用. 开源的JSON库主页:http://json-lib.sourceforge.net/ 环境:JDK5 , json-lib-2.3-jdk15 所依赖的包:json-lib-2.3-jdk15.jar,commons-collections.jar,

JAVA中JNI的简单使用分享_java

了解JNI:JAVA因其跨平台特性而受人们喜爱,也正因此,使得它和本机各种内部联系变得很少,所以JNI(Java Native Interface)就是用来解决JAVA本地操作的一种方式.JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式).通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法. 步骤如下: 1.写好.java源文件: 复制代码 代码如下: packag