Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để tuần tự hóa một đối tượng JSON với JsonWriter bằng Mô hình Đối tượng trong Java?


javax.json . JsonWriter giao diện có thể ghi đối tượng JSON hoặc cấu trúc mảng vào đầu ra nguồn . Lớp javax.json.JsonWriterFactory chứa các phương thức để tạo JsonWriter các trường hợp. Một phiên bản gốc có thể được sử dụng để tạo nhiều phiên bản nhà văn với cùng một cấu hình. Chúng tôi có thể tạo người viết từ nguồn đầu ra bằng cách sử dụng tĩnh phương thức createWriter () trong tổng số javax.json.Json lớp học.

Cú pháp

public static JsonWriter createWriter(Writer writer)

Trong ví dụ dưới đây, chúng ta có thể tuần tự hóa một đối tượng JSON bằng giao diện JsonWriter.

Ví dụ

import java.io.StringWriter;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.json.JsonWriter;
public class JsonWriterTest {
   public static void main(String[] args) {
      JsonObject jsonObj = Json.createObjectBuilder()
                 .add("name", "Adithya")
                 .add("age", 25)
                 .add("salary", 40000)
                 .add("address",
                      Json.createObjectBuilder().add("street", "Madhapur")
                                                .add("city", "Hyderabad")
                                                .add("zipCode", "500084")
                                                .build()
                      )
                 .add("phoneNumber",
                      Json.createArrayBuilder().add("9959984000")
                                               .add("7702144400")
                                               .build()
                     )
                 .build();

      StringWriter stringWriter = new StringWriter();
      JsonWriter writer = Json.createWriter(stringWriter);
      writer.writeObject(jsonObj);
      writer.close();
      System.out.println(stringWriter.getBuffer().toString());
   }
}

Đầu ra

{"name":"Adithya","age":25,"salary":40000,"address":{"street":"Madhapur","city":
"Hyderabad","zipCode":"500084"},"phoneNumber":["9959984000","7702144400"]}