How do I make Jackson’s build() method pretty-print its JSON output? is an example that pretty-prints the JSON string.
I need to take the pretty-printed version of JSON string and then convert it to the compact/minified form. How can it be done?
I need to convert this:
{ "one" : "AAA", "two" : [ "B B", "CCC" ], "three" : { "four" : "D D", "five" : [ "EEE", "FFF" ] } }
to this:
{"one":"AAA","two":["B B","CCC"],"three":{"four":"D D","five":["EEE","FFF"]}}
I tried to remove ‘n’, ‘t’, and ‘ ‘ characters; but there may be some of these characters in values so I can’t do that.
What else can be done?
Advertisement
Answer
Jackson allows you to read from a JSON string, so read the pretty-printed string back into Jackson and then output it again with pretty-print disabled.
See converting a String to JSON
Simple Example
String prettyJsonString = "{ "Hello" : "world"}"; ObjectMapper objectMapper = new ObjectMapper(); JsonNode jsonNode = objectMapper.readValue(prettyJsonString, JsonNode.class); System.out.println(jsonNode.toString());
Requires
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.5.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.3</version> </dependency>