我试图找到一种方法来打印Java ArrayLists到Yaml列表,格式如下:
[list-element1,list-element2,list-element3...]
然而,我只设法以另一种格式将它们打印到Yaml列表中:
-list-element1
-list-element2
-list-element3
有没有一种方法,第一个可以做一个 * 设置 * 在Jackson?我知道这可以用SnakeYaml来完成,但我不想走这条路。
如果这个问题的答案是否定的,我还创建了一个自定义序列化器,它将Java列表序列化为所需的格式([list-element1,list-element2,list-element3...]
),并通过调用
jasonGenerator.writeStringField("ArrayList", list_string.toString()).
但是,当我打电话给
String yamlString = mapper.writeValueAsString(object_to_serialize)
输出的形式是
'[list-element1,list-element2,list-element3...]'
(带引号),即使在相应的YAMLFactory中启用了最小化引号。除了解析yamlString和替换违规字符之外,还有其他解决方案吗?
2条答案
按热度按时间vd8tlhqk1#
似乎没有其他解决方案,并且很可能与java-to-yaml序列化的过程有关。同样的行为表现出来,不仅当我尝试输出带有大括号字符的列表时,而且在包含冒号的字符串中也是如此,通常情况下,每当库解析违反某些条件的字符串时(例如,以空格开头,或者包含用于yaml输出的字符),它都会用引号将其 Package 起来。
emeijp432#
YAMLGenerator.Feature.CANONICAL_OUTPUT可能会帮助您:
它将产生: