2011-03-28 245 views

回答

11

假設你開始與現有的JSON字符串,然後Jackson可以爲你做到這一點:

ObjectMapper objectMapper = new ObjectMapper(); 
objectMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); 

String originalJson = ... 
JsonNode tree = objectMapper .readTree(originalJson); 
String formattedJson = objectMapper.writeValueAsString(tree); 
+0

使用Jackson新版本的人,請檢查@H Mirza的答案。 – Aebsubis 2017-03-02 09:47:40

4

與傑克遜2.6.1

String beautify(String json) throws IOException { 
    ObjectMapper mapper = new ObjectMapper(); 
    Object obj = mapper.readValue(json, Object.class); 
    return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj); 
} 

的pom.xml:

<dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>2.6.1</version> 
    </dependency> 

    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.6.1</version> 
    </dependency> 

Convert JSON String to Pretty Print JSON output using Jackson

2

更新由skaffman前面的答案,與傑克遜的新版本(2+,我認爲)。第二行代碼是:

objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);