文章目录
- (一)JSON简介
- (二)JSON格式
- <1>对象格式
- <2>数组格式
- (三)JSON解析
- <1>Gson
- 【1】将对象转换为JSON字符串
- 【2】将JSON字符串转换为对象
- <2>FastJson
- 【1】将对象转换为JSON字符串
- 【2】将JSON字符串转换为对象
(一)JSON简介
简介:
JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.
(二)JSON格式
<1>对象格式
一个对象, 由一个大括号表示.
括号中 描述对象的属性 . 通过键值对来描述对象的属性 (可以理解为, 大括号中, 包含的是一个个的键值对.)
格式:
键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解 析.)
键值对的值, 可以是JS中的任意类型的数据
JSON:
{
"name":"水浒传",
" info":"梁山一百零八好汉起义的故事" ,
"price":"32.0"
}
<2>数组格式
在JSON格式中可以与对象互相嵌套
[元素1,元素2…]
案例
{
"name":"唐僧",
"country":"大唐",
"tudi":["猪八戒","沙僧","白龙马",{
"name":"孙悟空",
"info":"女娲补天所留五彩石所化"
}],
"treasure":{ "name":"紫金钵", "use":"化缘"
}
}
(三)JSON解析
<1>Gson
【1】将对象转换为JSON字符串
转换JSON字符串的步骤:
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
案例:Book b = BookDao.find();
String json = new Gson().toJson(b); System.out.println(json);
package Demo;
import com.google.gson.Gson;
public class Demo {
public static void main(String[] args) {
//1.创建JSON对象
Hero h = new Hero("宋江",1,"及时雨");
//2.转化
String s = new Gson().toJson(h);
System.out.println(s);
}
}
【2】将JSON字符串转换为对象
将JSON字符串转换为对象
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
案例:
String json = "{“id”:1,“name”:“水浒传”,“author”:"施耐庵 “,“info”:“梁山一百零八好汉起义的故事”,“price”:32.0}”;
Book book = new Gson().fromJson(json, Book.class); System.out.println(book);
package Demo;
import com.google.gson.Gson;
public class Demo1 {
public static void main(String[] args) {
//1.创建JSON对象
Gson g = new Gson();
//2.转化{"name":"宋江","num":"1","info":"及时雨"}
Hero h = g.fromJson("{\"name\":\"宋江\",\"num\":\"1\",\"info\":\"及时雨\"}",Hero.class);
String s = new Gson().toJson(h);
System.out.println(s);
}
}
<2>FastJson
【1】将对象转换为JSON字符串
转换JSON字符串的步骤:
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
案例:Book b = BookDao.find();
String json=JSON.toJSONString(b);
System.out.println(json);
import com.alibaba.fastjson.JSON;
public class Demo2 {
public static void main(String[] args) {
Hero h = new Hero("宋江",1,"及时雨");
//1.转化
String s = JSON.toJSONString(h);
System.out.println(s);
}
}
【2】将JSON字符串转换为对象
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或
List<类型> list=JSON.parseArray(JSON字符串,类型.class); 案例:String json = "{“id”:1,“name”:“水浒传”,“author”:"施耐庵 “,“info”:“梁山一百零八好汉起义的故事”,“price”:32.0}”;
Book book = JSON.parseObject(json, Book.class);
System.out.println(book);
import com.alibaba.fastjson.JSON;
public class Demo3 {
public static void main(String[] args) {
//1.转化{"name":"宋江","num":"1","info":"及时雨"}
Hero h = JSON.parseObject("{\"name\":\"宋江\",\"num\":\"1\",\"info\":\"及时雨\"}", Hero.class);
System.out.println(h);
System.out.println(h.getInfo());
System.out.println(h.getName());
System.out.println(h.getNum());
}
}