添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在Java和Spring Boot中使用Jackson Pretty-Printing JSON

在这个实用的教程中,学习如何在使用Jackson、Java和Spring Boot时为JSON字符串和POJO启用Pretty-Printing功能。

Spring Boot Spring Boot Spring Boot JSON字符串 Spring Boot Pretty-Printing功能
发表日期:2022-10-27
public Book(String title, String author, int releaseYear) { this.title = title; this.author = author; this.releaseYear = releaseYear; // Getters, setters, toString(), ...

让我们实例化一个 Book 实例以及一个输入的字符串:

String inputString = "{\n" +
        "\"Task 1\" : \"In_Progress\",\n" +
        "\"Task 2\" : \"Done\",\n" +
        "\"Task 3\" : \"Planned\"\n" +
Book book = new Book("Our Mathematical Universe", "Max Tegmark", 2014);

用Jackson Once pretty地打印JSON

如果你想在一次调用中简单地pretty打印一次,而不是设置全局打印标志 - 你可以在把一个值写成字符串之前简单地使用 writerWithDefaultPrettyPrinter() 调用:

ObjectMapper mapper = new ObjectMapper();
Object jsonString = mapper.readValue(inputString, Object.class);
String indentedString = mapper.writerWithDefaultPrettyPrinter()
                              .writeValueAsString(jsonString);
System.out.println(jsonString);
System.out.println(indentedString);

从(JSON-to-Object)中读取输入字符串并使用pretty-printing(Object-to-JSON)将此对象的值写回字符串中:

ObjectMapper mapper = new ObjectMapper();
Object jsonString = mapper.readTree(inputString).toPrettyString();
System.out.println(jsonString);

这是一个快速和简单的方法来格式化一个输入的JSON字符串!

当与POJO一起工作时,而不是从给定的输入中读取,我们只进行对象到JSON的转换并启用pretty-printing:

ObjectMapper mapper = new ObjectMapper();
String jsonBook = mapper.writeValueAsString(book);
String indentedBook = mapper.writerWithDefaultPrettyPrinter()
                            .writeValueAsString(book);
System.out.println(jsonBook);
System.out.println(indentedBook);
{"title":"Our Mathematical Universe","author":"Max Tegmark","releaseYear":2014}
  "title" : "Our Mathematical Universe",
  "author" : "Max Tegmark",
  "releaseYear" : 2014

全局Pretty-Print设置

或者你可以启用全局的pretty-printing,如果这是Jackson为你的项目提供的最好的全局行为。

这就像你在实例化ObjectMapper()实例时使用enable()方法一样简单:

Object jsonString = mapper.readValue(inputString, Object.class);
String indentedString = mapper.writeValueAsString(jsonString);
System.out.println(jsonString);
System.out.println(indentedString);

这将在Spring的ObjectMapper实例中设置SerializationFeature.INDENT_OUTPUT标志。

sangniao.com

在这个简短的教程中,我们看了一下如何使用Jackson从一个字符串或POJO中Pretty-Print JSON。我们探讨了单次打印的变化(当你只想Pretty-Print一次时)和为ObjectMapper设置全局Jackson标志。最后,我们看了一下改变Spring Boot的属性,以便用Jackson实现Pretty-Print


版权声明:本文为桑鸟网博主「ineo」的原创文章,转载请附上原文出处链接及本声明。

本文标题:在Java和Spring Boot中使用Jackson Pretty-Printing JSON

本文地址:https://news.sangniao.com/p/1855868463