Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธาสร้าง JSON ด้วย JsonGenerator ใน Java

JsonGenerator เป็นคลาสฐานที่กำหนด Public API สำหรับเขียนเนื้อหา JSON อินสแตนซ์ถูกสร้างผ่านเมธอดโฟรี่ของอินสแตนซ์ JsonFactory เมื่อได้ JsonGenerator จากโฟรี่แล้ว สามารถใช้เมธอดต่างๆ ได้ดังนี้:

  • writeStartObject() - เขียนเครื่องหมายเริ่มต้นของ JSON Object
  • writeFieldName() - เขียนชื่อฟิลด์
  • writeString() - เขียนค่าสตริง
  • writeStartArray() - เขียนเครื่องหมายเริ่มต้นของ Array
  • writeEndObject() - เขียนเครื่องหมายปิดของ JSON Object

ไวยากรณ์

public abstract class JsonGenerator extends Object implements Closeable, Flushable, Versioned

ตัวอย่างโค้ด

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

public class JsonGeneratorTest {
    public static void main(String[] args) throws IOException {
        JsonFactory factory = new JsonFactory();
        StringWriter jsonObjectWriter = new StringWriter();
        JsonGenerator generator = factory.createGenerator(jsonObjectWriter);
        generator.useDefaultPrettyPrinter(); // pretty print JSON
        generator.writeStartObject();
        generator.writeFieldName("empid");
        generator.writeString("120");
        generator.writeFieldName("firstName");
        generator.writeString("Ravi");
        generator.writeFieldName("lastName");
        generator.writeString("Chandra");
        generator.writeFieldName("technologies");
        generator.writeStartArray();
        generator.writeString("SAP");
        generator.writeString("Java");
        generator.writeString("Selenium");
        generator.writeEndArray();
        generator.writeEndObject();
        generator.close(); // ปิด generator
        System.out.println(jsonObjectWriter.toString());
    }
}

ผลลัพธ์

{
  "empid" : "120",
  "firstName" : "Ravi",
  "lastName" : "Chandra",
  "technologies" : [ "SAP", "Java", "Selenium" ]
}

ข้อดีของ JsonGenerator

JsonGenerator ใช้หน่วยความจำน้อยและเร็วกว่า ObjectMapper สำหรับการสร้าง JSON ขนาดใหญ่ เนื่องจากเขียนแบบ Streaming โดยไม่ต้องโหลดทั้งหมดเข้าหน่วยความจำ