Pretty print JSON using javax.json API in Java?

JavaJSONObject Oriented ProgrammingProgramming

The javax.json package provides an Object Model API to process JSON. The Object Model API is a high-level API that provides immutable object models for JSON object and array structures. These JSON structures can be represented as object models using JsonObject and JsonArray interfaces. We can use the JsonGenerator interface to write the JSON data to an output in a streaming way. The JsonGenerator.PRETTY_PRINTING is a configuration property to generate JSON prettily.

We can implement a pretty print JSON in the below example.

Example

import java.io.*;
import java.util.*;
import javax.json.*;
import javax.json.stream.*;
public class JSONPrettyPrintTest {
   public static void main(String args[]) {
      String jsonString = "{\"name\":\"Raja Ramesh\",\"age\":\"35\",\"salary\":\"40000\"}";
      StringWriter sw = new StringWriter();
      try {
         JsonReader jsonReader = Json.createReader(new StringReader(jsonString));
         JsonObject jsonObj = jsonReader.readObject();
         Map<String, Object> map = new HashMap<>();
         map.put(JsonGenerator.PRETTY_PRINTING, true);
         JsonWriterFactory writerFactory = Json.createWriterFactory(map);
         JsonWriter jsonWriter = writerFactory.createWriter(sw);
         jsonWriter.writeObject(jsonObj);
         jsonWriter.close();
      } catch(Exception e) {
         e.printStackTrace();
      }
      String prettyPrint = sw.toString();
      System.out.println(prettyPrint); // pretty print JSON
   }
}

Output

{
   "name": "Raja Ramesh",
 "age": "35",
  "salary": "40000"
}
raja
Published on 22-Oct-2019 10:29:32
Advertisements