参考资料

  1. Java中如何使用Gson解析JSON?
  2. Java: 使用org.json库

简介功能:
Gson是Google提供的Java库,用于在Java对象和JSON数据之间进行映射。它可以将JSON字符串转换为Java对象(反序列化),也能将Java对象转换为JSON字符串(序列化)。

详细属性参数说明:

  1. GsonBuilder:用于配置Gson实例的构建器

    • setPrettyPrinting():格式化输出JSON

    • setDateFormat():设置日期格式

    • disableHtmlEscaping():禁用HTML转义

    • serializeNulls():序列化null值

  2. 常用注解:

    • @SerializedName:指定JSON字段名

    • @Expose:控制字段是否参与序列化/反序列化

    • @Since/@Until:基于版本控制字段

使用方法讲解:

  1. 添加依赖:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
</dependency>
  1. 基本用法:

// 创建Gson实例
Gson gson = new Gson();

// Java对象转JSON
String json = gson.toJson(obj);

// JSON转Java对象
MyClass obj = gson.fromJson(json, MyClass.class);
  1. 复杂用法:

Gson gson = new GsonBuilder()
    .setPrettyPrinting()
    .setDateFormat("yyyy-MM-dd")
    .create();

案例内容解析:

  1. 简单对象转换:

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);
  1. 处理复杂结构:

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);
  1. 使用注解:

class Product {
    @SerializedName("product_name")
    String name;
    
    @Expose(serialize = false)
    double price;
}

// 序列化时price字段将被忽略