JSON (JavaScript Object Notation) là định dạng trao đổi dữ liệu dựa trên văn bản, nhẹ và dễ đọc cho con người. Các quy ước của JSON được các lập trình viên quen thuộc với C, C++, Java, Python, Perl, v.v. hiểu rõ.
Có một số thư viện Java để xử lý JSON. Google Gson là một thư viện đơn giản dựa trên Java để tuần tự hóa (serialize) đối tượng Java thành JSON và ngược lại. Đây là thư viện mã nguồn mở do Google phát triển.
Chuyển đổi đối tượng Java sang JSON
Thư viện Gson của Google cung cấp một lớp có cùng tên (Gson) - đây là lớp chính của thư viện. Lớp này cung cấp phương thức toJson() với nhiều biến thể, trong đó có biến thể chấp nhận một đối tượng Java và chuyển đổi nó thành chuỗi JSON.
Để chuyển đổi đối tượng Java thành chuỗi JSON bằng thư viện GSON, thực hiện các bước sau:
Thêm phụ thuộc Maven vào pom.xml:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> </dependency>Tạo một POJO (Plain Old Java Object) / JavaBean với các biến private và phương thức setter/getter.
Tạo một lớp khác (đảm bảo lớp POJO có sẵn).
Trong lớp đó, tạo đối tượng của lớp POJO, thiết lập giá trị cần thiết bằng phương thức setter.
Khởi tạo đối tượng của lớp
Gson.Gọi phương thức
toJson()với đối tượng POJO vừa tạo.Lấy và in chuỗi JSON thu được.
Ví dụ minh họa
import com.google.gson.Gson;
class Student {
private int id;
private String name;
private int age;
private long phone;
public int getId() { return id; }
public void setId(int id) { this.id = id; }
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; }
public long getPhone() { return phone; }
public void setPhone(long phone) { this.phone = phone; }
}
public class ObjectToJsonString {
public static void main(String args[]) {
Student std = new Student();
std.setId(1);
std.setName("Krishna");
std.setAge(30);
std.setPhone(9848022338L);
// Tạo đối tượng Gson
Gson gson = new Gson();
String jsonString = gson.toJson(std);
System.out.println(jsonString);
}
}
Kết quả đầu ra
{"id":1,"name":"Krishna","age":30,"phone":9848022338}
Lưu ý: Phiên bản Gson 2.8.5 là phiên bản cũ. Hiện tại nên sử dụng phiên bản mới nhất (2.10.1 trở lên) để tận hưởng các cải tiến hiệu suất và bảo mật.