Tổng quan
Gson cho phép serialize danh sách (List) các đối tượng Java thành mảng JSON một cách trực tiếp. Lớp chính là Gson, thường tạo qua new Gson() hoặc GsonBuilder để bật định dạng đẹp (pretty printing).
Ví dụ: List<Person> → JSON
import java.util.*;
import java.util.stream.Collectors;
import com.google.gson.*;
public class ListToJsonExample {
public static void main(String[] args) {
// Tạo Gson với pretty printing
Gson gson = new GsonBuilder().setPrettyPrinting().create();
// Tạo danh sách Person dùng Stream API (Java 8+)
List<Person> people = Stream.of(
new Person("Raja", "Ramesh", 30, "9959984800"),
new Person("Jai", "Dev", 25, "7702144400"),
new Person("Adithya", "Sai", 21, "7013536200"),
new Person("Chaitanya", "Sai", 28, "9656444150")
).collect(Collectors.toList());
String json = gson.toJson(people);
System.out.println("Chuyển đổi danh sách Person sang JSON:");
System.out.println(json);
}
}
// Lớp POJO đơn giản
class Person {
private String firstName, lastName, contact;
private int age;
public Person(String firstName, String lastName, int age, String contact) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.contact = contact;
}
// Getter/Setter có thể thêm nếu cần, Gson dùng reflection truy cập field private
@Override
public String toString() {
return "[" + firstName + " " + lastName + " " + age + " " + contact + "]";
}
}
Kết quả (đã định dạng)
[
{
"firstName": "Raja",
"lastName": "Ramesh",
"contact": "9959984800",
"age": 30
},
{
"firstName": "Jai",
"lastName": "Dev",
"contact": "7702144400",
"age": 25
},
{
"firstName": "Adithya",
"lastName": "Sai",
"contact": "7013536200",
"age": 21
},
{
"firstName": "Chaitanya",
"lastName": "Sai",
"contact": "9656444150",
"age": 28
}
]
Mẹo: Nên thêm annotation @SerializedName nếu tên field JSON khác tên field Java.