如何创建和关闭 JsonGenerator?
首先,什么是JSON ? JSON 代表JavaScript Object Notation 。它是服务器和客户端之间使用的一种数据交换格式。 JSON 数据示例:
{
"name" : "Sonali Singh",
"age": 40,
"address" : {
"state": "Texas",
"city": "Houston"
}
}
JSONGenerator 是一个以流式方式将 JSON 数据写入输出源的接口。为了创建 JSONGenerator 的实例,我们需要使用 JSONFactory 实例。
JsonFactory factory = new JsonFactory();
这个工厂实例有一个名为CreateGenerator的方法,它将创建 JSONGenerator。
JsonGenerator generator = factory.createGenerator(new File("test.json"));
createGenerator 接受我们希望将 JSON 写入的目标作为第一个参数。如果我们使用 bytestream 作为第一个参数,我们还可以选择指定 CharSet
createGenerator(OutputStream out, Charset charset)
现在我们可以开始将 JSON 写入我们的流中。从生成器对象调用的第一个方法是writeStartObject()用于写入对象或writeStartArray()用于写入数组,之后我们可以指定键和值名称。在我们完成 JSON 的编写后,我们指定了writeEnd()函数来标记我们的 JSON 数据的结束。
例子
写起始对象:
generator.writeStartObject().write("name": "Sonali Singh").write("age":40).writeEnd().close()
The JSON generated is {"name" : "Sonali Singh","age": 40,}
写开始数组:
generator
.writeStartObject().write("name", "Sonali Singh").write("age", 25)
.writeStartArray("education")
.writeStartObject()
.write("type", "college")
.write("course", "B.Com")
.writeEnd()
.writeStartObject()
.write("type", "Higher Secondary")
.write("course", "Commerce")
.writeEnd()
.writeEnd()
.writeEnd();
generator.close();
The JSON generated is
{"name": :Sonali Singh", "age" : 25,
"education" : [ {"type", "college", "course", "B.Com},
{"type", "Higher Secondary", "course", "Commerce"}
]
}
最后,我们调用 Generator 的 .close() 方法。此方法通过关闭相应的输出流来释放资源。