JSON (JavaScript Object Notation) là tiêu chuẩn mở dựa trên văn bản nhẹ được thiết kế cho trao đổi dữ liệu dễ đọc bởi con người. Các quy ước của JSON được các lập trình viên biết đến, bao gồm C, C++, Java, Python, Perl, v.v.
Có một số thư viện Java để xử lý đối tượng JSON. Jackson là một thư viện đơn giản dựa trên Java để tuần tự hóa đối tượng Java thành JSON và ngược lại.
Chuyển đổi đối tượng Java thành JSON
Lớp ObjectMapper của Jackson API trong Java cung cấp các phương thức để chuyển đổi đối tượng Java thành đối tượng JSON và ngược lại.
Phương thức writeValueAsString() của lớp này chấp nhận một đối tượng Java làm tham số và trả về chuỗi JSON tương ứng.
Do đó, để chuyển đổi đối tượng Java thành chuỗi JSON bằng thư viện Jackson:
- Thêm phụ thuộc Maven sau vào
pom.xml:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.0.pr2</version>
</dependency>
- Tạo đối tượng JavaBean/POJO với các biến private và phương thức setter/getter.
- Tạo lớp khác (đảm bảo lớp POJO có sẵn).
- Trong đó, tạo đối tượng của lớp POJO, đặt giá trị cần thiết bằng phương thức setter.
- Khởi tạo lớp
ObjectMapper. - Gọi phương thức
writeValueAsString()bằng cách truyền đối tượng POJO đã tạo. - Lấy và in chuỗi JSON thu được.
Ví dụ
import com.fasterxml.jackson.databind.ObjectMapper;
class Student {
private int id;
private String name;
private int age;
private long phone;
// Getters và Setters
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 JacksonExample {
public static void main(String args[]) throws Exception {
Student std = new Student();
std.setId(001);
std.setName("Krishna");
std.setAge(30);
std.setPhone(9848022338L);
// Tạo đối tượng ObjectMapper
ObjectMapper mapper = new ObjectMapper();
// Chuyển đổi đối tượng thành chuỗi JSON
String jsonString = mapper.writeValueAsString(std);
System.out.println(jsonString);
}
}
Kết quả
{"id":1,"name":"Krishna","age":30,"phone":9848022338}