📜  gson gradle 依赖 (1)

📅  最后修改于: 2023-12-03 15:15:26.960000             🧑  作者: Mango

使用Gson Gradle依赖

Gson是Google提供的一个Java库,用于将Java对象转换为JSON表示形式。Gson的优点包括简单易用、性能高效、易于定制和使用。

引入Gson Gradle依赖

要使用Gson Gradle依赖,需将以下配置添加到build.gradle文件中:

dependencies {
    implementation 'com.google.code.gson:gson:2.8.8'
}
使用Gson库

在Java代码中,使用Gson库将Java对象转换为JSON字符串,以及将JSON字符串转换为Java对象。下面是一个示例:

import com.google.gson.Gson;

public class GsonExample {
    public static void main(String[] args) {
        // 创建Java对象
        Person person = new Person("Tom", 20);

        // 将Java对象转换为JSON字符串
        Gson gson = new Gson();
        String json = gson.toJson(person);
        System.out.println(json);

        // 将JSON字符串转换为Java对象
        Person newPerson = gson.fromJson(json, Person.class);
        System.out.println(newPerson);
    }
}

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

输出结果为:

{"name":"Tom","age":20}
Person{name='Tom', age=20}
定制Gson转换

Gson库提供了多种方式来定制Java对象和JSON字符串之间的转换过程。下面是一些示例:

  • 自定义序列化和反序列化
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;

import java.lang.reflect.Type;

public class GsonCustomExample {
    public static void main(String[] args) {
        // 创建Java对象
        Person person = new Person("Tom", 20);

        // 创建Gson对象,并注册自定义转换器
        GsonBuilder builder = new GsonBuilder();
        builder.registerTypeAdapter(Person.class, new PersonSerializer());
        Gson gson = builder.create();

        // 将Java对象转换为JSON字符串
        String json = gson.toJson(person);
        System.out.println(json);
    }
}

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

class PersonSerializer implements JsonSerializer<Person> {
    @Override
    public JsonElement serialize(Person person, Type type, JsonSerializationContext context) {
        // 将Person对象转换为JSON元素
        return context.serialize(person.getName() + "(" + person.getAge() + ")");
    }
}

输出结果为:

"Tom(20)"
  • 排除某些字段
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class GsonExcludeExample {
    public static void main(String[] args) {
        // 创建Java对象
        Person person = new Person("Tom", 20);

        // 创建Gson对象,并排除age字段
        GsonBuilder builder = new GsonBuilder();
        builder.excludeFieldsWithoutExposeAnnotation();
        Gson gson = builder.create();

        // 将Java对象转换为JSON字符串
        String json = gson.toJson(person);
        System.out.println(json);
    }
}

class Person {
    private String name;

    @Expose
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

输出结果为:

{"age":20}

以上是使用Gson Gradle依赖的介绍,如果您想了解更多关于Gson的信息,可以访问Gson官方网站