📅  最后修改于: 2023-12-03 15:15:26.960000             🧑  作者: Mango
Gson是Google提供的一个Java库,用于将Java对象转换为JSON表示形式。Gson的优点包括简单易用、性能高效、易于定制和使用。
要使用Gson Gradle依赖,需将以下配置添加到build.gradle
文件中:
dependencies {
implementation 'com.google.code.gson:gson:2.8.8'
}
在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库提供了多种方式来定制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官方网站。