我正在尝试从 bean 创建一个 YAML 文件。其中一个字段超过 80 个字符。当我使用 objectMapper
将 bean 写入 YAML 文件时,这些值打印在两行不同的行中。
- code: abcd1234
label-en_US: Lorem Ipsum is simply dummied text of the printing and typesetting
industry --> this line should not be here
ObjectMapper mapper = new ObjectMapper(new YAMLFactory().enable(MINIMIZE_QUOTES));
mapper.writeValue(Paths.get("path/to/file").toFile(), getData());
答案 0 :(得分:1)
因此,您不希望长文本包含在多行中,这会让您考虑是否在 YAMLFactory
中有一个选项可以控制它。
然后检查文档,即 YAMLFactory
的 javadoc,看看是否有任何有用的内容。查看 list of methods,您会注意到 disable(YAMLGenerator.Feature f)
和 enable(YAMLGenerator.Feature f)
方法,并考虑是否有 YAMLGenerator.Feature
可以满足您的需求。
查看 list of features,您会发现一个名为 SPLIT_LINES
,其描述为:
传递给 SnakeYAML 的选项,用于确定是否将较长的文本内容自动拆分为多行。
默认启用功能以符合 SnakeYAML 默认值以及与 2.5 及更早版本的向后兼容性。
在用你研究技能的威力跳了一小段胜利之舞之后......好吧,不,你不这样做,因为不得不在这里领导表明缺乏这样的技能,但是您会为自己在未来努力提高自己的研究技能而惊叹……您将 disable(SPLIT_LINES)
添加到代码中。
YAMLFactory yamlFactory = YAMLFactory.builder()
.enable(MINIMIZE_QUOTES)
.disable(SPLIT_LINES)
.build();
ObjectMapper mapper = new ObjectMapper(yamlFactory);