This article shows how to use Moshi’s JsonAdaptor indent
method to enable the pretty print JSON.
Table of contents:
- 1. Download Moshi
- 2. Compact print JSON (Default)
- 3. Pretty print JSON using Moshi
- 4. Download Source Code
- 5. References
P.S Tested with Moshi 1.15.1
1. Download Moshi
Declare moshi
in the pom.xml
.
pom.xml
<dependency>
<groupId>com.squareup.moshi</groupId>
<artifactId>moshi</artifactId>
<version>1.15.1</version>
</dependency>
2. Compact print JSON (Default)
By default, Moshi prints JSON strings in compact format:
Person.java
package com.mkyong.json.model;
public class Person {
private String name;
private int age;
// getters, setters, constructors and etc...
}
PrettyPrintJsonExample.java
package com.mkyong.json.moshi;
import com.mkyong.json.model.Person;
import com.squareup.moshi.JsonAdapter;
import com.squareup.moshi.Moshi;
public class PrettyPrintJsonExample {
public static void main(String[] args) {
Moshi moshi = new Moshi.Builder().build();
JsonAdapter<Person> jsonAdapter = moshi.adapter(Person.class);
Person person = new Person("mkyong", 42);
try {
String json = jsonAdapter.toJson(person);
System.out.println(json);
} catch (Exception e) {
System.err.println("Error parsing JSON: " + e.getMessage());
}
}
}
Output
{"age":42,"name":"mkyong"}
3. Pretty print JSON using Moshi
In the JsonAdapter’s indent
method, puts two spaces, this will tell Moshi to format the JSON string with each new level indented by two spaces, making the structure of the JSON clear and easy to understand.
// indent using two spaces
JsonAdapter<Person> jsonAdapter =
moshi.adapter(Person.class).indent(" ");
PrettyPrintJsonExample.java
package com.mkyong.json.moshi;
import com.mkyong.json.model.Person;
import com.squareup.moshi.JsonAdapter;
import com.squareup.moshi.Moshi;
public class PrettyPrintJsonExample {
public static void main(String[] args) {
Moshi moshi = new Moshi.Builder().build();
// two spaces
JsonAdapter<Person> jsonAdapter =
moshi.adapter(Person.class).indent(" ");
Person person = new Person("mkyong", 42);
try {
String json = jsonAdapter.toJson(person);
System.out.println(json);
} catch (Exception e) {
System.err.println("Error parsing JSON: " + e.getMessage());
}
}
}
Output
{
"name" : "mkyong",
"age" : 42
}
4. Download Source Code
$ git clone https://github.com/mkyong/java-json
$ cd moshi
5. References
- Moshi Github
- Parse JSON using Moshi
- Write JSON to a file using Moshi
- How to enable pretty print JSON with Jackson
- Parse JSON string with Jackson
The post How to pretty print JSON using Moshi appeared first on Mkyong.com.