Giới thiệu về JSON Binding trong Jakarta EE

874

Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh

JSON Binding là một specification của Jakarta EE về convert qua lại giữa JSON data và Java object, tương tự như thư viện Jackson mà mình đã giới thiệu với các bạn. Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu về JSON Binding và cách sử dụng nó với một implementation của nó là Eclipse Yasson các bạn nhé!

Đầu tiên, mình sẽ tạo mới một Maven project để làm ví dụ:

JSON Binding trong Jakarta EE

  JSON-LD là gì ? Tổng quan về JSON-LD cho người mới

Eclipse Yasson dependency như sau:

Để làm ví dụ, mình sẽ định nghĩa một class Student chứa thông tin sinh viên như sau:

Student student = new Student("Khanh", 35);

Để convert đối tượng Student này qua chuỗi JSON, các bạn cần khởi tạo đối tượng của class Jsonb từ class JsonbBuilder của JSON Binding API như sau:

Implementation của những class này trong thư viện Yasson lần lượt là JsonBinding và JsonBindingBuilder.

Xem thêm các việc làm JSON hấp dẫn trên TopDev

Sau khi đã có đối tượng Jsonb thì chúng ta có thể sử dụng phương thức toJson() với tham số là đối tượng cần convert qua chuỗi JSON để convert nó qua JSON data:

String result = jsonb.toJson(student);

Toàn bộ code như sau:

package com.huongdanjava.jakartaee;

import jakarta.json.bind.Jsonb;
import jakarta.json.bind.JsonbBuilder;

public class Main {

  public static void main(String[] args) {
    Student student = new Student("Khanh", 35);

    Jsonb jsonb = JsonbBuilder.create();
    String result = jsonb.toJson(student);
    System.out.println(result);
  }
}

Kết quả khi chạy ứng dụng ví dụ này như sau:

JSON Binding trong Jakarta EE

Nếu các bạn có chuỗi JSON cho thông tin sinh viên và cần convert nó qua đối tượng Student, các bạn cũng có thể sử dụng phương thức fromJson() để làm điều này.

Ví dụ mình có chuỗi JSON chứa thông tin sinh viên như sau:

String json = "{"age":20,"name":"Thanh"}";

Mình có thể convert qua đối tượng Student như sau:

Kết quả:

JSON Binding trong Jakarta EE

  Chuyển đổi JSON qua CSV sử dụng thư viện Jackson

Các bạn có thể định nghĩa đối tượng của class JsonConfig để thêm một số cấu hình về chuỗi JSON sẽ được generate. Ví dụ như nếu các bạn muốn output JSON được format thì các bạn có thể viết code như sau:

package com.huongdanjava.jakartaee;

import jakarta.json.bind.Jsonb;
import jakarta.json.bind.JsonbBuilder;
import jakarta.json.bind.JsonbConfig;

public class Main {

  public static void main(String[] args) {
    Student student = new Student("Khanh", 35);

    JsonbConfig config = new JsonbConfig()
        .withNullValues(true)
        .withFormatting(true);

    Jsonb jsonb = JsonbBuilder.create(config);
    String result = jsonb.toJson(student);
    System.out.println(result);
  }
}

Kết quả:

JSON Binding trong Jakarta EE

Bài viết gốc được đăng tải tại huongdanjava.com

Có thể bạn quan tâm:

Xem thêm việc làm CNTT hấp dẫn trên TopDev