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



我正在寻找一种方法,可以创建某种自定义格式的"rule/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手动格式化和输出数据,但如果其他人有任何其他想法,请告诉我。

感谢您的帮助。

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

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

EDIT:使用此方法,尽管您可以定义使用的数据以及数据的显示方式(以数组或csv字符串等形式(,但我认为您实际上无法更改漂亮打印的结构。

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

最新更新