适用于Java的JSON Beautifier库

bar*_*nco 9 java json string-formatting

我想使用Java格式化包含JSON数据的字符串.有没有人知道一个开源库.

ska*_*man 14

假设你开始使用现有的JSON字符串,那么杰克逊可以为你做到这一点:

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

String originalJson = ...
JsonNode tree = objectMapper .readTree(originalJson);
String formattedJson = objectMapper.writeValueAsString(tree);
Run Code Online (Sandbox Code Playgroud)

  • 使用较新版本 Jackson 的人,请查看 @H Mirza 的回答。 (3认同)

H M*_*rza 6

skaffman更新到以前的答案,并使用了较新版本的Jackson(我认为是2+)。现在,第二行代码为:

objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
Run Code Online (Sandbox Code Playgroud)


Rem*_*let 5

随着杰克逊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);
}
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

使用Jackson将JSON字符串转换为Pretty Print JSON输出