我们如何在Java中使用JsonGenerator创建JSON?

JsonGenerator 是一个基类,定义了公共API编写JSON内容。实例是使用JsonFactory 实例的工厂方法创建的。一旦可以从工厂实例中获取JsonGenerator ,则可以使用writeStartObject() 编写JSON对象值的开始标记, 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(); // to close the generator
      System.out.println(jsonObjectWriter.toString());
   }
}

输出结果

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