详细:JSON解析教程

一、JSON

简介:JSON(JavaScript Object Notation) JS对象简谱 , 是一种轻量级的数据交换格式。

1.对象格式

同样是描述一个对象

1 一本书
2     书名 金苹果
3     简介 种苹果

java:

1 class book{
2     private String name;
3     private String info;
4     get/set...
5 }
6 Book b = new Book();
7 b.setName("金苹果");
8 b.setInfo("种苹果");
9 ...

js:

1 var b = new Object();
2 b.name = "金苹果";
3 b.info = "种苹果";

XML:

1 <book>
2     <name>金苹果</name>
3     <info>种苹果</info>
4 </book>

JSON:

1 {
2     "name":"金苹果",
3     "info":"种苹果"
4 }

JSON对象格式:

  一个对象,由一个大括号表示。

  括号中通过键值对来描述对象的属性(可以理解为,大括号中,包含的是一个个的键值对)

格式:

  键与值之间使用冒号连接,多个键值对之间使用逗号分隔。

  键值对的键应使用引号引住 (通常Java解析时,键不使用引号会报错。而JS能正确解析)

  键值对的值, 可以是JS中的任意类型的数据

数组格式

在JSON格式中可以与对象互相嵌套
1 [元素1,元素2,元素3...]

2.对象格式举例

 1 { 
 2     "name":"小李", 
 3     "age":18, 
 4     "pengyou":["张三","李四","王二","麻子",{ 
 5                         "name":"野马老师", 
 6                         "info":"像匹野马一样狂奔在技术钻研的道路上" 
 7                     }], 
 8     "heihei":{ 
 9         "name":"大长刀", 
10         "length":"40m" 
11     } 
12 }

二、Java与JSON

做什么?

  将Java中的对象快速的转换为JSON格式的字符串。

  将JSON格式的字符串转换为Java的对象。

1.Gson

  • 将对象转换为JSON字符串

转换JSON字符串的步骤:

  1.  引入JAR包(点击下载)

  2.  在需要转换JSON字符串的位置编写如下代码即可:

1 String json = new Gson().toJSON(要转换的对象);

案例

1 Book b = BookDao.find(); 
2 String json = new Gson().toJson(b); 
3 System.out.println(json);
  • 将JSON字符串转换为对象

  1.  引入JAR包

  2.  在需要转换Java对象的位置, 编写如下代码:

1 对象 = new Gson().fromJson(JSON字符串,对象类型.class);

案例:

1 String json = "{"id":1,"name":"金苹果","author":"张三 ","info":"嘿嘿嘿嘿嘿嘿","price":198.0}"; 
2 Book book = new Gson().fromJson(json, Book.class); 
3 System.out.println(book);

2.FastJson

  • 将对象转换为JSON字符串

转换JSON字符串的步骤:

  1.  引入JAR

  2.  在需要转换Java对象的位置, 编写如下代码:

1 String json=JSON.toJSONString(要转换的对象);

案例:

1 Book b = BookDao.find(); 
2 String json=JSON.toJSONString(b); 
3 System.out.println(json);
  • 将JSON字符串转换为对象

  1.  引入JAR包

  2.  在需要转换Java对象的位置, 编写如下代码:

1 类型 对象名=JSON.parseObject(JSON字符串, 类型.class); 

或者

1 List<类型> list=JSON.parseArray(JSON字符串,类型.class);

案例:

1 String json = "{"id":1,"name":"金苹果","author":"张三 ","info":"嘿嘿嘿嘿嘿嘿","price":198.0}"; 
2 Book book = JSON.parseObject(json, Book.class); 
3 System.out.println(book);
原文地址:https://www.cnblogs.com/zhangzhongkun/p/14476861.html