Применить форматирование к SnakeYaml после сериализации - PullRequest
0 голосов
/ 22 апреля 2020

Я использую snakeYaml (snakeyaml-engine-2.1) для сериализации pojo. Atm serilisation производит следующий вывод

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, так что он должен быть в состоянии выдать тот же результат, как я думаю. Кто-нибудь знает, какие настройки необходимы для создания структуры, как во втором примере? Заранее спасибо.

1 Ответ

0 голосов
/ 22 апреля 2020

Я пока не могу сделать 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
...