我正在开发一个将文件从JSON转换为YAML的项目。我正在使用以下库的2.8.3版本:
我的YAML序列化代码非常简单:
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
ObjectWriter writer = mapper.writer();
try {
SequenceWriter sw = writer.writeValues(System.out);
sw.write(tree);
}
catch (IOException e) {
e.printStackTrace();
}
此代码生成的YAML如下所示:
serviceType: "elasticSearch"
displayName: "Elasticsearch Service"
description: "Sample Elastic Search Service"
虽然它是有效的YAML,但我不喜欢值周围的双引号。你不需要它们在YAML中,它使编辑结果文件更加麻烦。有谁知道如何配置ObjectWriter以使jackson停止将String值封装在引号中?
答案 0 :(得分:12)
有一个名为MINIMIZE_QUOTES
的YAMLGenerator
功能会关闭引号。
您可以YAMLFactory
创建ObjectMapper mapper = new ObjectMapper(new YAMLFactory().enable(Feature.MINIMIZE_QUOTES));
,如此:
{{1}}