1、基本概念
JSON的全称为:JavaScript Object Notation ,是一种轻量级的数据交换格式。当我们的服务器和客户端进行数据交换时,一般不会将类对象直接进行传输,而是将类对象转换为JSON格式或者XML格式,再进行数据交换。举个栗子:我们先创建一个Java对象:
class Book{
private String name;
private String info;
get/set...
}
Book b = new Book();
b.setName(“西游记”);
b.setInfo(“讲述了师徒四人西天取经的故事”);
...
将这个BOOK的对象转换为XML格式,其存储方式为:
<book>
<name>西游记</name>
<info>讲述了师徒四人西天取经的故事</info>
</book>
JSON格式的存储方式为:
{
"name":"西游记",
"info":"讲述了师徒四人西天取经的故事"
}
现在的网络数据传输中,JSON的使用是最为普遍的。在这里,简单记录下JSON的学习。JSON作为一种数据交换格式,它可以将Java中的对象快速的转换为 JSON格式的字符串。也可以将JSON格式的字符串, 转换为Java的对象。
2、JSON的解析
Java中没有内置JSON的解析,因此使用JSON需要借助第三方类库。下面是几个常用的 JSON 解析类库:
- Gson: 谷歌开发的 JSON 库,功能十分全面。
- FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。
- Jackson: 社区十分活跃且更新速度很快。
这里我们分享下GJSON和FastJSON的对象与JSON字符串的转换方法:
GJSON
将对象转换为JSON字符串步骤:
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
案例:
Book b = new Book();
String json = new Gson().toJson(b);
System.out.println(json);
将JSON字符串转换为对象步骤:
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
案例:
String json = "{
\"name\":\"西游记\",
\"info\":\"讲述了师徒四人西天取经的故事\"
}"
Book b = new Gson().fromJson( json, Book.class)
FastJson
将对象转换为FastJSON字符串步骤:
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
案例:
Bookb = BookDao.find();
String json=JSON.toJSONString(b);
System.out.println(json);
将JSON字符串转换为对象步骤:
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class); 或者:
List<类型> list=JSON.parseArray(JSON字符串,类型.class);
案例:
String json = "{
\"name\":\"西游记\",
\"info\":\"讲述了师徒四人西天取经的故事\"
}"
Book book = JSON.parseObject(json, Book.class);