java - 序列化后将格式应用于 SnakeYaml

标签 java yaml snakeyaml

我正在使用snakeYaml (snakeyaml-engine-2.1) 来序列化pojo。 Atm 序列化产生以下输出

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 样本是由 Snake 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/

相关文章:

java - MessageConsumer/MessageProducer 与 QueueSender/QueueReceiver

java - Play 框架中的 yml 文件 : can they refer to one another

ruby-on-rails - 带有可选参数的 .yml 中的翻译

Java SnakeYaml - 防止转储引用名称

java - YAML 文件 : Reading Yaml file and Writing the file in Same Format

Java icmp4j 多线程 ping 不那么多线程

java - 进度对话框未显示

java - SimpleMatrix getMatrix().getData() 问题

python - pyYaml - 导出时不带 "-"

java - 使用 SnakeYaml 处理缺失字段