Jackson là một thư viện chuẩn để xử lý các vấn đề liên quan đến JSON trong Java. Trong bài viết này, chúng ta sẽ tìm hiểu làm thế nào để chuyển đổi đối tượng Java sang chuỗi JSON sử dụng thư viện Jackson các bạn nhé!
Đầu tiên, mình sẽ làm một ví dụ minh họa bằng một Maven project như sau:
Jackson dependency như sau:
1 2 3 4 5 |
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.18.1</version> </dependency> |
Class Application hiện tại có nội dung như sau:
1 2 3 4 5 6 7 8 |
package com.huongdanjava.jackson; public class Application { public static void main(String[] args) { } } |
Vì chúng ta đang chuyển đổi một đối tượng Java sang chuỗi JSON nên điều đầu tiên chúng ta cần làm là phải định nghĩa một đối tượng Java. Mình đã định nghĩa một class Student nằm trong package com.huongdanjava.jackson đơn giản như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
package com.huongdanjava.jackson; public class Student { private String name; private int age; 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; } } |
OK, chúng ta bắt đầu đi vào chủ đề chính nha các bạn!
Đầu tiên, chúng ta cần khởi tạo một đối tượng Student trước:
1 2 3 |
Student student = new Student(); student.setName("Khanh"); student.setAge(30); |
Để chuyển đổi đối tượng Student này sang chuỗi JSON, mình sẽ sử dụng đối tượng ObjectMapper trong thư viện Jackson để làm điều này.
Chúng ta sẽ khởi tạo nó trước:
1 |
ObjectMapper om = new ObjectMapper(); |
và sử dụng phương thức writeValueAsString() của nó để chuyển đổi đối tượng Student sang chuỗi JSON:
1 2 |
String json = om.writeValueAsString(student); System.out.println(json); |
Kết quả:
Nếu các bạn muốn chuỗi JSON kết quả được định dạng tốt hơn thì có thể sử dụng đối tượng ObjectMapper và gọi phương thức writerWithDefaultPrettyPrinter() trước khi gọi phương thức writeValueAsString() như sau:
1 2 3 |
ObjectMapper om = new ObjectMapper(); String json = om.writerWithDefaultPrettyPrinter().writeValueAsString(student); System.out.println(json); |
Lúc này kết quả sẽ là:
Say Hoi
còn nếu muốn chuyển List thành json thì sao ạ