在序列化时对SnakeYaml应用格式化。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在序列化时对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
以上是关于在序列化时对SnakeYaml应用格式化。的主要内容,如果未能解决你的问题,请参考以下文章
使用SnakeYAML Java将用户作为嵌套在块序列中的块映射添加到yml文件