2011-03-28 13 views

Respuesta

11

Suponiendo que estás empezando con una cadena JSON existente, entonces Jackson puede hacer esto para usted:

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

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

Las personas que utilizan las versiones más recientes de Jackson, verifique la respuesta de @H Mirza. – Aebsubis

4

Con Jackson 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

actualización a la respuesta anterior por skaffman, con las nuevas versiones de Jackson (2 +, creo). La segunda línea de código ahora es:

objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);