Going through some reading, I saw below example for Jackson Streaming API. They are writing for one object (kind of one map). Can any one please help me on how to write multiple objects. Like a List of Maps.
jsonFactory jfactory = new JsonFactory();
/*** write to file ***/
JsonGenerator jGenerator = jfactory.createJsonGenerator(new File(
"c:\\user.json"), JsonEncoding.UTF8);
jGenerator.writeStartObject(); // {
jGenerator.writeStringField("name", "mkyong"); // "name" : "mkyong"
jGenerator.writeNumberField("age", 29); // "age" : 29
jGenerator.writeFieldName("messages"); // "messages" :
jGenerator.writeStartArray(); // [
jGenerator.writeString("msg 1"); // "msg 1"
jGenerator.writeString("msg 2"); // "msg 2"
jGenerator.writeString("msg 3"); // "msg 3"
jGenerator.writeEndArray(); // ]
jGenerator.writeEndObject(); // }
jGenerator.close();
I tried looping and got below result.
{“Item1label1”:”Item1value1”,”Item1label2”:”Item1value2"} {“Item2label1”:”Item2value1”,”Item2label2”:”Item2value2"}
But this is not a valid JSON. As something is missing in between two objects. What code has to be made to make it valid JSON.
Below is an example of writing a large array of objects (
HashMap
here but could be any other) withwritePOJOField
method. I use jackson-core and jackson-databind (see https://github.com/FasterXML/jackson).