【问题标题】:Custom formatting for pretty-printing JSON data Java用于漂亮打印 JSON 数据 Java 的自定义格式
【发布时间】:2018-07-11 00:21:18
【问题描述】:

我正在寻找一种方法,可以创建某种自定义格式的“规则/s”,以便打印漂亮的 JSON 数据。目前,我正在使用 GSON 进行漂亮打印,但是,我想以不同的格式输出。更具体地说,我正在尝试匹配 Minecraft JSON 文件的格式。

以下是 GSON 漂亮打印的示例:

[
  {
    "when": {
      "OR": [
        {
          "conditional": false,
          "facing": "north"
        },
        {
          "conditional": false,
          "facing": "north"
        }
      ]
    },
    "apply": [
      {
        "model": "chain_command_block",
        "weight": 1,
        "uvlock": false,
        "x": 0,
        "y": 0
      }
    ]
  }
]

这是我想要实现的一个示例:

[
  { "when": { "OR": [
        {"conditional": false, "facing": "north"},
        {"conditional": false, "facing": "north"}
    ]},
    "apply": [
      { "model": "chain_command_block", "weight": 1, "uvlock": false, "x": 0, "y": 0 }
    ]
  }
]

我想我必须自己使用 StringBuilder 或 BufferedWriter 手动格式化和输出数据,但如果其他人有任何其他想法,请告诉我。

感谢您的帮助。

【问题讨论】:

  • 如果您使用 Jackson 作为 JSON 解析器/生成器库,您可以编写自己的 PrettyPrinter

标签: java json gson minecraft pretty-print


【解决方案1】:

使用 GSON,您可以注册 typeAdapter 并自定义类的序列化和反序列化方式。

https://futurestud.io/tutorials/gson-advanced-custom-serialization-part-1

编辑: 使用这种方法,虽然您可以定义使用什么数据以及如何呈现(在数组或 csv 字符串等中),但我认为您实际上不能改变漂亮打印的结构。

例如,如果我想漂亮地打印一个对象,我还希望能够为某个类类型定义何时缩进以及何时向下移动到下一行。仍在测试,所以也许我错了,,,

【讨论】:

    猜你喜欢
    • 2021-07-28
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 2012-03-07
    • 2011-05-06
    相关资源
    最近更新 更多