我有一个JSON文件,我想从Java Sping Boot 中创建的rest控制器中的API调用中检索它的内容。我将.json文件的内容转换为一个String,并使用下面的方法(其中之一)来美化打印。如果我使用system.out.println()方法输出,它会被美化打印,但在浏览器中,它显示得很粗略,没有缩进。我有更多的方法:
String content = new String(Files.readAllBytes(resource.toPath()));
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(content);
String prettyJsonString = gson.toJson(je);
System.out.println(prettyJsonString);
return prettyJsonString;
另一种方法在浏览器中返回同样难看的输出,但它还添加了“/r/n”:
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
String prettyJsonString = mapper.writeValueAsString(content);
return prettyJsonString;
有人能帮我在浏览器中得到漂亮的输出吗?
2条答案
按热度按时间z8dt9xmd1#
控制台输出和HTML输出的格式化字符串是两个非常不同的任务。方法
setPrettyPrinting()
用于控制台打印。HTML浏览器将忽略“\n”符号,并且不会考虑用单个空格替换多个空格等。通常,格式化输出通常是客户端任务。但我曾经解决过这个问题,并编写了一个方法,该方法使用控制台-格式化字符串并将其转换为Html格式化字符串。例如,它将所有“\n”符号替换为brHtml标记。它还做了其他一些事情。我在这方面取得了一些成功,但有时也会出现一些意想不到的问题,欢迎大家使用,该方法在MgntUtils开源库中有提供,下面是它的JavaDoc。库本身可以作为Maven工件here和Github(包括源代码和JavaDoc)here获得。关于库的文章是here。您的代码看起来像这样:jexiocij2#
我遇到了同样的问题,偶然发现了如何让它在浏览器中漂亮地打印出来。在你的
application.properties
文件中,添加以下两行:参考:https://www.callicoder.com/configuring-spring-boot-to-use-gson-instead-of-jackson/可能相关:https://stackoverflow.com/a/62044963