自定义格式以打印漂亮的JSON数据Java

时间:2018-07-11 00:21:19

标签: java json gson minecraft pretty-print

我正在寻找一种方法,可以为漂亮地打印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自己手动格式化并输出数据,但是如果其他任何人有其他想法,请告诉我。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用GSON,您可以注册typeAdapter并自定义应如何序列化和反序列化类。

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

编辑:使用这种方法,尽管您可以定义使用什么数据以及如何显示(在数组或csv字符串等中),但我认为您实际上无法更改漂亮打印的结构。

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