JsonGenerator定义用于编写JSON内容的公共API的基类(抽象类)。实例使用的工厂方法创建,也就是JsonFactory。Java中的数据类型和JSON中的值类型并不是一一对应的关系,那么这就需要JsonGenerator在写入时起到一个桥梁(适配)作用:
public static void main(String[] args) throws IOException {
String filePath = "src/main/resources/json/student_object_for_generator.json";
ObjectMapper mapper = new ObjectMapper();
try (JsonGenerator generator = mapper.getFactory().createGenerator(new File(filePath), JsonEncoding.UTF8)) {
generator.writeStartObject(); // {
generator.writeStringField("id", "1"); // "id" : "1",
generator.writeStringField("name", "亚瑟"); // "name" : "亚瑟",
generator.writeNumberField("age", 33); // "age" : 33,
generator.writeFieldName("courseScores"); // "courseScores" :
generator.writeStartArray(); // [
generator.writeStartObject(); // {
generator.writeStringField("course", "Java"); // "course" : "Java",
generator.writeNumberField("score", 80); // "score" : 80
generator.writeEndObject(); // },
generator.writeStartObject(); // {
generator.writeStringField("course", "C#"); // "course" : "C#",
generator.writeNumberField("score", 88); // "score" : 88
generator.writeEndObject(); // }
generator.writeEndArray(); // ]
generator.writeEndObject(); // }
}
}