📜  如何创建和关闭 JsonGenerator?

📅  最后修改于: 2022-05-13 01:55:41.925000             🧑  作者: Mango

如何创建和关闭 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() 方法。此方法通过关闭相应的输出流来释放资源。