Gson 简介
Gson是Google推出的用来解析json数据以及将对象转换成json数据的框架。可以很方便地实现json数据与对象的相互转换,还可以自定义需要序列化或反序列化的字段。
Gson Maven 依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
使用 Gson 进行对象序列化与反序列化
public class ToJsonBeanOne {
private int id;
private String name;
private int age;
// 省略getter、setter
}
对象序列化
//创建对象
ToJsonBeanOne toJsonBeanOne = new ToJsonBeanOne(1, "小熊", 21);
//将对象转换为json数据
Gson gson = new Gson();
gson.toJson(toJsonBeanOne);
对象反序列化
Gson gson = new Gson();
//将json数据转换为对象
ToJsonBeanOne beanOne = gson.fromJson(jsonString, ToJsonBeanOne.class);
使用 Gson 进行List 序列化与反序列化
将List 数据转换成Json
Gson gson = new Gson();
List<Integer> list = Arrays.asList(1, 2, 3);
gson.toJson(list);
使用Gson 将字符串反序列化成带泛型的List
Type type = new TypeToken<List<ToJsonBeanOne>>(){}.getType();
List<ToJsonBeanOne> beanOnes = gson.fromJson(jsonString, type);
使用 Gson 进行 Map 类型的序列化与反序列化
- 序列化
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
Map<String, ToJsonBeanOne> map = new LinkedHashMap<String, ToJsonBeanOne>();
map.put("key1", new ToJsonBeanOne(1, "小熊1", 21));
map.put("key2", new ToJsonBeanOne(2, "小熊2", 21));
map.put("key3", new ToJsonBeanOne(3, "小熊3", 21));
String jsonString = gson.toJson(map);
- 反序列化
Type type = new TypeToken<Map<String, ToJsonBeanOne>>() {}.getType();
Map<String, ToJsonBeanOne> map2 = gson.fromJson(jsonString, type);