__2017-12-16 如一模式识别研究

如一模式识别研究

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

转自:http://www.cnblogs.com/loadfate/p/3759237.html

一、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 list = new ArrayList();

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

五、附件

下载地址:http://pan.baidu.com/s/1sjvxZXF

文件介绍:

  jsondemo.zip:jsondemo的源代码

评论留言区

:
  

作者: 游客 ; *
评论内容: *
带*号为必填项目

如一模式识别更新提示

matlab在图像处理方面的应用有更新

如一模式识别 友情链接

关于本站作者     chinaw3c     mozilla