JSON总结
定义
全称:JavaScript Object Notatioin,是一种轻量级的数据交换格式
格式
- 一个对象,对应一个大括号({ })
- 通过其中的键值对来描写属性,大括号中包含的是一个个的键值对
- 键和值之间使用冒号相连接,多个键值对之间用逗号间隔
- 键值对的键,用引号包围
- 键值对中的值可以是JS中的任意数据类型
- 数字(整数或浮点)
- 字符串
- 逻辑值(true或false)
- 数组([“a”,“b”,“c”])
- 对象(大括号中)
- null
Java对象:
Class Book {
private String name;
private String info;
public Book(String name, String info) {
this.name = name;
this.info = info;
}
}
JSON:
{
"name": "Harry Potter",
"info": "A Book"
}
数组格式:
{
"name": "Harry",
"age": 16,
"power": ["good looking", "rich", "powerful", {
"name": "wond",
"info": "The most powerful wond ever"
}],
"family": "Ginny"
}
Java与JSON的相互转换
Gson: Google开发的转换工具包
- 将对象转换为JSON字符串
对象转换为JSON字符串的步骤:
1. 导入Jar包
2. 以下为代码
String json = new Gson().toJson("对象");
案例代码:
Book b = new Book();
String json = new Gson().toJson(b);
// 此时json字符串便是图书对象b的Json序列化
- 将JSON字符串转换为对象
String json = "{
"name": "Harry",
"age": 16,
"power": ["good looking", "rich", "powerful", {
"name": "wond",
"info": "The most powerful wond ever"
}],
"family": "Ginny"
}"
Book b = new Gson.fromJson(json, Book.class);
System.out.println(b);
FastJson - 阿里开发的Json工具包
对象到Json字符串的步骤:
String json = JSON.toJSONString(对象)
例子:
Book b = BookDao.find();
String json = JSON.toJSONString(b);
System.out.println(json);
Json字符串到对象
Book b = JSON.parseObject(JSON字符串, Book.class);
List<Book> list = JSON.parseArray(JSON字符串, Book.class);