#JavaInspires
Hi Guys,
Welcome to Java Inspires.
In this post, we will see program to create a JSON string using JsonGenerator object from Jackson.
We will create this JSON using JsonGenerator.
{
"name": "Elon Musk",
"age": 45,
"working for": [
{
"name": "Space X"
},
{
"name": "Tesla"
},
{
"name": "The Boring Company"
}
]
}
Here, we are using jackson dependency in our maven porject.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.javainspires</groupId> <artifactId>jackson-examples</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.2</version> </dependency> </dependencies> </project>
package com.javainspires; import java.io.IOException; import java.io.StringWriter; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; /** * * @author #JavaInspires * */ public class MainApp { public static void main(String[] args) throws IOException { // How to create a JSON String using JsonGenerator in Jackson API // create Json Factory object JsonFactory jsonFactory = new JsonFactory(); // create StringWriter object StringWriter stringWriter = new StringWriter(); // create Json Generator JsonGenerator jsonGenerator = jsonFactory.createGenerator(stringWriter); // enable pretty print jsonGenerator.useDefaultPrettyPrinter(); // start json object jsonGenerator.writeStartObject(); // write a field to json jsonGenerator.writeStringField("name", "Elon Musk"); jsonGenerator.writeNumberField("age", 45); jsonGenerator.writeFieldName("working for"); // write array to json jsonGenerator.writeStartArray(); // object 1 jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("name", "Space X"); jsonGenerator.writeEndObject(); // object 2 jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("name", "Tesla"); jsonGenerator.writeEndObject(); // object 3 jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("name", "The Boring Company"); jsonGenerator.writeEndObject(); // end of array jsonGenerator.writeEndArray(); // end json object jsonGenerator.writeEndObject(); // close jsongenerator jsonGenerator.close(); // print json string System.out.println(stringWriter.toString()); } }
Output:
{
"name" : "Elon Musk",
"age" : 45,
"working for" : [ {
"name" : "Space X"
}, {
"name" : "Tesla"
}, {
"name" : "The Boring Company"
} ]
}