Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Tạo JSON trong Java bằng JsonGenerator (Jackson Streaming API)

JsonGenerator là lớp cơ sở của Jackson Streaming API, cung cấp API cấp thấp để ghi nội dung JSON. Các instance được tạo từ JsonFactory. Cách tiếp cận này hiệu quả về bộ nhớ, phù hợp cho dữ liệu lớn.

Các phương thức chính

  • writeStartObject() – Bắt đầu object JSON
  • writeFieldName(String) – Ghi tên trường
  • writeString(String) – Ghi giá trị chuỗi
  • writeStartArray() – Bắt đầu mảng
  • writeEndArray() – Kết thúc mảng
  • writeEndObject() – Kết thúc object
  • close() – Đóng generator (bắt buộc)

Ví dụ tạo JSON employee

import java.io.*;
import com.fasterxml.jackson.core.*;

public class JsonGeneratorDemo {
    public static void main(String[] args) throws IOException {
        JsonFactory factory = new JsonFactory();
        StringWriter writer = new StringWriter();
        JsonGenerator gen = factory.createGenerator(writer);
        
        gen.useDefaultPrettyPrinter(); // format đẹp
        
        gen.writeStartObject();
        gen.writeFieldName("empId");
        gen.writeString("120");
        gen.writeFieldName("firstName");
        gen.writeString("Minh");
        gen.writeFieldName("lastName");
        gen.writeString("Trần");
        gen.writeFieldName("skills");
        gen.writeStartArray();
        gen.writeString("Java");
        gen.writeString("Spring Boot");
        gen.writeString("Docker");
        gen.writeEndArray();
        gen.writeEndObject();
        gen.close();
        
        System.out.println(writer.toString());
    }
}

Kết quả

{
  "empId" : "120",
  "firstName" : "Minh",
  "lastName" : "Trần",
  "skills" : [ "Java", "Spring Boot", "Docker" ]
}

Khi nào dùng? Streaming API lý tưởng khi ghi file JSON lớn, không muốn load toàn bộ vào bộ nhớ.