为什么杰克逊这种漂亮的打印功能不起作用?

时间:2014-01-01 00:41:10

标签: java json jackson

为什么杰克逊这种漂亮的打印功能不起作用?只是尝试读取文件并使用jackson api进行打印:

public static void printJsonFromFile( String fileName ) {
    System.out.println("-----------------");
    ObjectMapper mapper = new ObjectMapper();
    try {
        System.out.println( mapper.writerWithDefaultPrettyPrinter()
           .writeValueAsString( readFile( fileName, StandardCharsets.UTF_8 )) );
    } catch ( IOException e ) {
        e.printStackTrace();
    }
    System.out.println("-----------------");
}
static String readFile(String path, Charset encoding) throws IOException 
{
     byte[] encoded = Files.readAllBytes( Paths.get( path ) );
     return encoding.decode( ByteBuffer.wrap( encoded ) ).toString();
}

1 个答案:

答案 0 :(得分:3)

您可以使用以下内容替换System.out来电:

Object json = mapper.readValue(readFile(fileName, StandardCharsets.UTF_8), Object.class);
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json));

这应该适当地缩进你的json。

希望这会有所帮助。