当前位置: 首页 > 面试题库 >

如何获得精美印刷的JSON代码的紧凑形式?

邬英武
2023-03-14
问题内容

如何使Jackson的build()方法漂亮地打印其JSON输出?这是一个漂亮地打印丑陋形式的JSON代码的示例。我需要采用漂亮的JSON代码版本,然后将其简化为丑陋的FOM。如何做呢?我需要将其转换为:

 {
   "one" : "AAA",
   "two" : [ "BBB", "CCC" ],
   "three" : {
     "four" : "DDD",
     "five" : [ "EEE", "FFF" ]
   }
 }

对此:

{"one":"AAA","two":["BBB","CCC"],"three":{"four":"DDD","five":["EEE","FFF"]}}

我试图删除’\ n’,’\ t’和’‘字符;但是值中可能包含某些字符,所以我不能这样做。还有什么可以做的?


问题答案:

Jackson允许您从JSON字符串读取,因此将漂亮打印的字符串读回到Jackson中,然后在禁用漂亮打印的情况下再次输出。

简单的例子

    String prettyJsonString = "{ \"Hello\" : \"world\"}";
    ObjectMapper objectMapper = new ObjectMapper();
    JsonNode jsonNode = objectMapper.readValue(prettyJsonString, JsonNode.class);
    System.out.println(jsonNode.toString());

需要

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.5.3</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.5.3</version>
</dependency>


 类似资料:
  • 问题内容: 我正在使用SQLite访问数据库并检索所需的信息。我正在Python 2.6版中使用ElementTree来创建具有该信息的XML文件。 码 尝试次数 我已经尝试使用它代替上面的最后一行代码,但是它根本没有编辑XML的布局- 仍然是一团糟。 我还决定摆弄一下,然后尝试做:而不是将其打印到Python shell上,这会产生错误 AttributeError:’unicode’对象没有属

  • 问题内容: 我正在寻找一种在Java 1.8中创建紧凑配置文件的方法。是否可以创建紧凑配置文件,因为这是说它仅适用于嵌入式版本 问题答案: 简短答案 JEP 161指出配置文件必须使用Java 8。要创建它们,请使用 应答器稍长 您怀疑配置文件可能仅存在于嵌入式平台上,并且@skiwi的评论使我有些困惑,因此我决定自己检查一下。 OpenJDK示例 为了检查配置文件是否存在,我使用了OpenJDK

  • 问题内容: 我有一个表,其数据对的建模如下: 然后总是更大。这些对表示要进行的替换。因此,将100替换为50,然后将50替换为40,然后将其替换为10。 因此结果将是这样的: 有没有一种我可以更改或加入此表来表示的简洁方法? 我知道我可以自己加入类似于以下内容的内容: 但是,这需要多次通过,因此,为什么我问是否有更好的方法来完成它? 问题答案: 结果:

  • 问题内容: 假设我有如下定义的Python函数: 我可以使用获取函数的名称。如上所述,我如何以编程方式获取其源代码? 问题答案: 如果该功能来自文件系统上可用的源文件,则可能会有帮助: 如果foo定义为: 然后: 返回值: 但是我相信,如果函数是从字符串,流中编译的,或者是从编译文件中导入的,那么您将无法检索其源代码。

  • 如何使用java SDK获得Microsoft图形刷新令牌?我用的是java SDK的图形,得到了访问令牌。如何使用此AccesStoken在java SDK中获得刷新令牌?

  • 在解析文件时,我会遍历文件的列标题,看看其中一个是否等于(忽略大小写)compare和: 使用字符集读取该文件: 观察调试器会发现值是非紧凑字符串(UTF-16),而值是紧凑字符串(ASCII): 这是默认行为还是bug?如何使的计算结果为?