1. maven引入
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
</dependencies>
2. 序列化与反序列化
- 序列化(Serialization)对象=>json
- 反序列化(Deserialization) json=>对象
2.1 序列化操作
class BagOfPrimitives {
private int value1 = 1;
private String value2 = "abc";
private int value3 = 3;
}
BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
String json = gson.toJson(obj);
// ==> {"value1":1,"value2":"abc","value3":3}
2.2 反序列化操作
public static void main(String[] args) throws Exception {
String str = "{\"value1\":1,\"value2\":\"abc\",\"value3\":3}";
Gson gson = new Gson();
SomeObject someObject = gson.fromJson(str,SomeObject.class);
System.out.println(someObject);
}
// ==> SomeObject{value1=1, value2='abc', value3=3}
2.3 说明
序列化和反序列化对应着对象和json串的转化,json值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或 false)、数组(在方括号中)、对象(在花括号中)、null
对象 | json表 示 |
---|---|
普通类型 | “key”:“value” |
对象 | “key”:{} |
数组/集合 | “key”:[] |
null | null |
序列化和反序列化的操作基本就是在写对象和json的对应关系。