我正在使用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"}


我知道他们是通过setter自定义蛇yaml中通过类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

关于java - 序列化后将格式应用于SnakeYaml,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61371038/

10-10 23:04