Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chuyển đổi danh sách đối tượng thành JSON bằng Gson trong Java

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.