Jackson API là thư viện Java chuyển đổi đối tượng Java sang JSON và ngược lại. Jackson nhanh hơn, ít bộ nhớ hơn, tốt cho object lớn. Xử lý JSON 3 cách: Streaming API, Tree Model, Data Binding.
Pretty print JSON dùng writerWithDefaultPrettyPrinter() của ObjectMapper, factory method tạo ObjectWriter serialize object dùng default pretty printer cho indentation.
Cú pháp
public ObjectWriter writerWithDefaultPrettyPrinter()
Ví dụ minh họa
import java.io.IOException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class PrettyPrintJsonJacksonTest {
public static void main(String[] args) throws IOException {
String data = "{\"Age\":30,\"Technologies\":[\"Java\",\"Spark\",\"Python\"],\"Name\":\"Adithya\"}";
ObjectMapper mapper = new ObjectMapper();
Object json = mapper.readValue(data, Object.class);
String jsonStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json);
System.out.println(jsonStr);
}
}
Kết quả
{
"Age" : 30,
"Technologies" : [ "Java", "Spark", "Python" ],
"Name" : "Adithya"
}
Mẹo: Có thể config mapper.enable(SerializationFeature.INDENT_OUTPUT) để tất cả writeValueAsString() đều pretty print. Hoặc dùng mapper.writer(new DefaultPrettyPrinter()) tùy chỉnh indentation.