Java中如何使用Gson解析JSON?
2025-04-18 09:49:25
7
参考资料
简介功能:
Gson是Google提供的Java库,用于在Java对象和JSON数据之间进行映射。它可以将JSON字符串转换为Java对象(反序列化),也能将Java对象转换为JSON字符串(序列化)。
详细属性参数说明:
GsonBuilder:用于配置Gson实例的构建器
setPrettyPrinting():格式化输出JSON
setDateFormat():设置日期格式
disableHtmlEscaping():禁用HTML转义
serializeNulls():序列化null值
常用注解:
@SerializedName:指定JSON字段名
@Expose:控制字段是否参与序列化/反序列化
@Since/@Until:基于版本控制字段
使用方法讲解:
添加依赖:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.9</version> </dependency>
基本用法:
// 创建Gson实例 Gson gson = new Gson(); // Java对象转JSON String json = gson.toJson(obj); // JSON转Java对象 MyClass obj = gson.fromJson(json, MyClass.class);
复杂用法:
Gson gson = new GsonBuilder() .setPrettyPrinting() .setDateFormat("yyyy-MM-dd") .create();
案例内容解析:
简单对象转换:
class User { String name; int age; } // 序列化 User user = new User(); user.name = "John"; user.age = 30; String json = gson.toJson(user); // {"name":"John","age":30} // 反序列化 User user2 = gson.fromJson(json, User.class);
处理复杂结构:
class Book { String title; List<String> authors; } // 序列化 Book book = new Book(); book.title = "Java Guide"; book.authors = Arrays.asList("Author1", "Author2"); String json = gson.toJson(book); // {"title":"Java Guide","authors":["Author1","Author2"]} // 反序列化 Book book2 = gson.fromJson(json, Book.class);
使用注解:
class Product { @SerializedName("product_name") String name; @Expose(serialize = false) double price; } // 序列化时price字段将被忽略