簡體   English   中英

用Jackson反轉JSON漂亮打印

[英]Reverse JSON pretty print with Jackson

我知道我可以重新格式化Java中的JSON對象(使用Jackson,GSON等),從

{"a":"b", "c":"d"}

{
  "a": "b",
  "c": "d"
}

但是我該如何將JSON對象轉換回每行一個對象的格式,即如何從

{
  "a": "b",
  "c": "d"
}

{"a":"b", "c":"d"}

Java中使用現有的漂亮打印機進行打印?

看一下以下URL: Jackson序列化功能

這將向您展示如何禁用功能,例如在每次調用時縮進輸出,即使您正在重復使用已配置用於漂亮打印的同一對象。

我認為Pretty Print是Jackson 1.x的命名法...您應該在尋找SerializationFeature.INDENT_OUTPUT

    @Test
public void test() throws Exception {
    ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
    String s = "{ \"a\" : \"b\" ,\n \"c\" : \"d\"}";
    Object x = mapper.readValue(s, Object.class);
    ObjectWriter w = mapper.writer();

    // Indented
    System.out.println(w.writeValueAsString(x));

    // Single Line
    System.out.println(w.without(SerializationFeature.INDENT_OUTPUT).writeValueAsString(x));
}

由於您已經在使用Jackson,因此應該使用以下命令立即使用:

String prettyJson = "{ \"a\" : \"b\" ,\n \"c\" : \"d\"}";
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode;
try {
    jsonNode = objectMapper.readValue(prettyJson, JsonNode.class);
    System.out.println(jsonNode.toString());
} catch (IOException e) {
    e.printStackTrace();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM