📅  最后修改于: 2023-12-03 14:41:39.701000             🧑  作者: Mango
GSON is a Java library developed by Google that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. GSON can be extremely useful when working with APIs that require data to be serialized or deserialized in JSON format.
In this article, we will explore how to use GSON in Android applications.
To start using GSON in your Android project, you need to add the following line to your build.gradle
file:
implementation 'com.google.code.gson:gson:2.8.7'
After adding the dependency, you can start using GSON in your Java classes.
The first thing we need to do is create a Java class that we want to serialize to JSON. Let's create a simple Person
class:
public 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 int getAge() {
return age;
}
}
Now let's see how we can serialize an instance of this class to JSON:
Person person = new Person("John Doe", 30);
Gson gson = new Gson();
String json = gson.toJson(person);
In this example, we created an instance of the Person
class and used GSON to serialize it to a JSON string. The resulting JSON string looks like this:
{
"name": "John Doe",
"age": 30
}
Let's now see how we can deserialize a JSON string to a Java object. We'll use the same Person
class that we used in the previous example:
String json = "{ \"name\": \"John Doe\", \"age\": 30 }";
Gson gson = new Gson();
Person person = gson.fromJson(json, Person.class);
In this example, we created a Person
object by deserializing the JSON string using GSON. The resulting Person
object has the name "John Doe" and age 30.
GSON also supports serialization and deserialization of nested objects. Let's create a Car
class that contains a Person
object:
public class Car {
private String make;
private int year;
private Person owner;
public Car(String make, int year, Person owner) {
this.make = make;
this.year = year;
this.owner = owner;
}
public String getMake() {
return make;
}
public int getYear() {
return year;
}
public Person getOwner() {
return owner;
}
}
Now let's serialize an instance of this class to JSON:
Person person = new Person("John Doe", 30);
Car car = new Car("Toyota", 2022, person);
Gson gson = new Gson();
String json = gson.toJson(car);
In this example, we created an instance of the Car
class that contains a Person
object. We then used GSON to serialize the Car
object to a JSON string. The resulting JSON string looks like this:
{
"make": "Toyota",
"year": 2022,
"owner": {
"name": "John Doe",
"age": 30
}
}
We can also deserialize a JSON string that contains nested objects:
String json = "{ \"make\": \"Toyota\", \"year\": 2022, \"owner\": { \"name\": \"John Doe\", \"age\": 30 } }";
Gson gson = new Gson();
Car car = gson.fromJson(json, Car.class);
In this example, we deserialized a JSON string that contains a Car
object with a nested Person
object.
In this article, we learned how to use GSON in Android applications to serialize and deserialize Java objects to and from JSON format. We also saw how GSON supports serialization and deserialization of nested objects. GSON is a powerful and easy-to-use library that can greatly simplify working with JSON data in Android applications.