Jackson JsonGenerator
Hymanson的JsonGenerator用于从Java对象(或者代码从中生成JSON的任何数据结构)生成JSON。
创建一个JsonGenerator
为了创建HymansonJsonGenerator
,我们必须首先创建JsonFactory
实例。这是创建JsonFactory
的方法:
JsonFactory factory = new JsonFactory();
一旦创建了JsonFactory,就可以使用JsonFactory的createGenerator()方法创建JsonGenerator。这是创建JsonGenerator
的示例:
JsonFactory factory = new JsonFactory(); JsonGenerator generator = factory.createGenerator( new File("data/output.json"), JsonEncoding.UTF8);
createGenerator()方法的第一个参数是生成的JSON的目的地。在上面的示例中,参数是一个"文件"对象。这意味着生成的JSON将被写入给定文件。 createGenerator()方法是重载的,因此有其他版本的createGenerator()方法,例如采用OutputStream等,为我们提供将生成的JSON写入何处的不同选择。
createGenerator()方法的第二个参数是生成JSON时使用的字符编码。上面的示例使用UTF-8.
使用JsonGenerator生成JSON
一旦创建了JsonGenerator
,就可以开始生成JSON。 JsonGenerator包含一组write()方法,可用于编写JSON对象的各个部分。这是一个使用HymansonJsonGenerator
生成JSON的简单示例:
JsonFactory factory = new JsonFactory(); JsonGenerator generator = factory.createGenerator( new File("data/output.json"), JsonEncoding.UTF8); generator.writeStartObject(); generator.writeStringField("brand", "Mercedes"); generator.writeNumberField("doors", 5); generator.writeEndObject(); generator.close();
本示例首先调用writeStartObject()
,将" {"写入输出。然后该示例调用writeStringField()
,将brand
字段名称+值写入输出。之后,调用writeNumberField()方法,该方法将doors字段名称+值写入输出。最后,调用writeEndObject(),将一个}写入输出。
JsonGenerator
还有许多我们可以使用的写方法。这个例子只显示了其中一些。
关闭JsonGenerator
完成生成JSON后,我们应该关闭JsonGenerator
。我们可以通过调用它的close()
方法来实现。这是关闭JsonGenerator
的样子:
generator.close();
关闭JsonGenerator
也将关闭文件或者OutputStream
等。JsonGenerator
其中写入生成的JSON。