Gson的学习与使用
Gson是一个Google开发的用于将Java对象转换为JSON格式并反向转换的库,支持复杂对象的序列化和反序列化。它简单易用,提供丰富的API,能够支持大多数的Java对象转换为Json的需求。
安装Gson
Maven添加依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.1</version>
</dependency>
Gradle添加依赖
dependencies {
implementation 'com.google.code.gson:gson:2.8.1'
}
Gson的基本使用
将Java对象转换为Json
Gson中提供了Gson
类,使用Gson
类的toJson
方法可以将Java对象转换为Json字符串。
Gson gson = new Gson();
Person person = new Person("张三", 20, "南京");
String jsonString = gson.toJson(person);
System.out.println(jsonString);
输出结果为:
{"name":"张三","age":20,"address":"南京"}
将Json字符串转为Java对象
Gson中提供了Gson
类,使用Gson
类的fromJson
方法可以将Json字符串转换为Java对象。
Gson gson = new Gson();
String jsonString = "{\"name\":\"张三\",\"age\":20,\"address\":\"南京\"}";
Person person = gson.fromJson(jsonString, Person.class);
System.out.println(person.toString());
输出结果为:
Person [name=张三, age=20, address=南京]
Gson的高级特性
处理日期类型
在Java中,日期类型的处理比较麻烦,但是Gson提供了对日期类型的支持。我们只需要配置好日期格式即可。
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
Date date = new Date();
String jsonString = gson.toJson(date);
System.out.println(jsonString);
输出结果为:
"2020-07-14 12:00:00"
处理复杂对象
对于复杂对象,可以使用Gson
对象的toJson
和fromJson
方法进行序列化和反序列化。下面的例子中,我们将一个包含复杂对象(List和Map)的Java对象转换为Json字符串。
Gson gson = new Gson();
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "张三");
map1.put("age", 20);
map1.put("address", "南京");
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "李四");
map2.put("age", 22);
map2.put("address", "上海");
list.add(map1);
list.add(map2);
String jsonString = gson.toJson(list);
System.out.println(jsonString);
输出结果为:
[
{"name":"张三","age":20,"address":"南京"},
{"name":"李四","age":22,"address":"上海"}
]
总结
Gson是一个强大的Json库,提供了很多功能。除了以上介绍的基本用法和高级特性,还有很多其他的特性和API。掌握Gson的使用可以大大提高我们的开发效率,使数据交互更加方便便捷。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:gson的学习与使用 - Python技术站