一、JSON简介
JSON: JavaScript Object Notation js对象简谱,是一种轻量级的数据交换格式。
采用了完全独立于编程语言的文本格式来存储和表示数据。
对象格式
创建图书对象:
Book.class
属性:书名(name),简介(info)
java:
class Book{
private String name;
private String info;
get/set...
...
}
Book b = new Book();
b.setName("");
b.setInfo("");
...
js:
var b = new Object();
b.name = "";
b.info = "";
XML:
<book>
<name></name>
<info></info>
</book>
JSON:
{
"name":"";
"info":"";
}
数组格式
{} 指一个对象
[] 指一个数组
实例:
{
"name":"下一场"
"info":"下一场战争"
"writer":["张三","李四",{"name":"王五","info":"伟大的作家"}]
"sequal":{
"name":"上一场",
"info":"上一场战争"
}
}
二、Java下对JSON的解析方式
注:Book对象中包含id,name,info三种属性,皆为String
1、Gson
1)将对象转换为JSON字符串
步骤:
1.引入JAR包
2. 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
实例:
public class Demo1 {
public static void main(String[] args) {
//1. 创建Gson对象
Gson g = new Gson();
//2. 转换
Book b = new Book("1001","金苹果","种苹果");
String json = g.toJson(b);
System.out.println(json);
}
}
2)将JSON字符串转换为对象
步骤:
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
实例:
public class Demo2 {
public static void main(String[] args) {
//1. 创建Gson对象
Gson g = new Gson();
//2. 转换 : {"id":"1001","name":"金苹果","info":"种苹果"}
Book b = g.fromJson("{\"id\":\"1001\",\"name\":\"金苹果\",\"info\":\"种苹果\"}",Book.class);
System.out.println(b);
}
}
3)将JSON字符串中的数组(以[]表示)转换为集合
实例:
public class Demo3 {
public static void main(String[] args) {
//1. 创建Gson对象
Gson g = new Gson();
//2. 转换 : {"id":"1001","name":"金苹果","info":"种苹果","page":["第一页","第二页","第三页"]}
HashMap data = g.fromJson("{\"id\":\"1001\",\"name\":\"金苹果\",\"info\":\"种苹果\",\"page\":[\"第一页\",\"第二页\",\"第三页\"]}", HashMap.class);
System.out.println(data.get("id"));
List page = (List) data.get("page");
System.out.println(page.get(1));
}
}
2、FastJson
1)将对象转换为JSON字符串
步骤:
1. 引入JAR包
2. 在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
实例:
public class Demo4 {
public static void main(String[] args) {
Book book = new Book("1002","唐诗三百首","没有三百首");
//1. 转换
String json = JSON.toJSONString(book);
System.out.println(json);
}
}
2)将JSON字符串转换为对象
步骤:
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
实例:
public class Demo5 {
public static void main(String[] args) {
//1. 转换 : {"id":"1002","name":"唐诗三百首","info":"没有三百首"}
Book book = JSON.parseObject("{\"id\":\"1002\",\"name\":\"唐诗三百首\",\"info\":\"没有三百首\"}",Book.class);
System.out.println(book);
}
}
3)将JSON字符串转换成集合
步骤:
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
List list=JSON.parseArray(JSON字符串,类型.class);
实例
public class Demo6 {
public static void main(String[] args) {
//1. 转换 : ["001","002","003"]
List<String> list = JSON.parseArray("[\"001\",\"002\",\"003\"]",String.class);
System.out.println(list.get(1));
}
}