gpt4 book ai didi

java - Java 中 JSON 的 pretty-print 在控制台上工作正常,但在浏览器中不起作用

转载 作者:行者123 更新时间:2023-11-30 05:26:46 27 4
gpt4 key购买 nike

我有一个 JSON 文件,我想从 Java Spring Boot 中创建的 Rest Controller 内的 API 调用中检索其内容。我将 .json 文件的内容获取到一个字符串中,并使用下面的方法(其中之一)来漂亮地打印。如果我使用 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;

任何人都可以帮助我在浏览器中获得漂亮的输出吗?

最佳答案

格式化控制台输出和 HTML 输出的字符串是两个非常不同的任务。方法setPrettyPrinting()用于控制台打印。 HTML 浏览器将忽略“\n”符号,并且不会考虑将多个空格替换为单个空格等。通常,格式化输出通常是客户端任务。但我遇到了这个问题并编写了一个方法,该方法采用控制台格式的字符串并将其转换为 Html 格式的字符串。例如,它用 br Html 标记替换所有“\n”符号。它还执行其他一些操作。我取得了一些成功,但有时会出现一些意想不到的问题。欢迎您使用它。该方法可在 MgntUtils 开源库中找到。这是它的JavaDoc 。该库本身可作为 Maven 工件使用 here以及 Github(包括源代码和 JavaDoc)here 。关于该库的文章是here 。您的代码将如下所示:

String htmlString = TextUtils.formatStringToPreserveIndentationForHtml(jsonPrettyString);

关于java - Java 中 JSON 的 pretty-print 在控制台上工作正常,但在浏览器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58411257/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com