作者:完结那份友谊吧_586 | 来源:互联网 | 2023-12-11 19:18
本文介绍了在序列化时如何对SnakeYaml应用格式化,包括通过设置类和DumpSettings来实现定制输出的方法。作者提供了一个示例,展示了期望的yaml生成格式,并解释了如何使用SnakeYaml的特定设置器来实现这个目标。对于正在使用SnakeYaml进行序列化的开发者来说,本文提供了一些有用的参考和指导。摘要长度为169字。
篇首语:本文由编程笔记#小编为大家整理,主要介绍了在序列化时对SnakeYaml应用格式化。相关的知识,希望对你有一定的参考价值。
我正在使用 snakeYaml (snakeyaml-engine-2.1) 来序列化一个 pojo。目前,序列化产生了如下输出
name: "OuterYamlElementName"
label: "OuterYamlElementLabel"
fields:
label: "outerYamlFieldLabel"
value: "outerYamlFieldValue"
isRequired: true
toggle: "+Test-Outer-Yaml-Field"
但我希望yaml能这样生成
name: "OuterYamlElementName"
label: "OuterYamlElementLabel"
fields:
- {label: "outerYamlFieldLabel", value: "outerYamlFieldValue", isRequired: true, toggle: "+Test-Outer-Yaml-Field"}
我知道他们有办法通过类来定制输出。DumpSettings
在蛇形图中通过设置器
setCanonical
setDefaultFlowStyle
etc
然而,我还没有能够产生这种输出,因为不幸的是。我希望产出的Yaml是比较大的(上面的例子只包括了一个片段,所以才会有这样的要求)。此外,第二个Yaml样本是由蛇Yaml反序列化的,所以它应该能够产生同样的输出,我想。有人知道创建第二个例子中的结构需要哪些设置吗?先谢谢你了。
答案
我还不能使 snakeyaml-engine-2.1
产生任何结果。
然而,我尝试了另一个YAML库(snakeyaml
v.1.10),并生成了下面的示例字符串(但是,没有双引号)。
!!com.example.demo.so.yaml.FormatYaml$Pojo
field: {label: outerYamlFieldLabel2, required: true, toggle: +Test-Outer-Yaml-Field2,
value: outerYamlFieldValue2}
fields:
- {label: outerYamlFieldLabel, required: true, toggle: +Test-Outer-Yaml-Field, value: outerYamlFieldValue}
label: OuterYamlElementName
name: OuterYamlElementName