如何阻止杰克逊的YAML作家引用价值

时间:2016-09-28 20:50:52

标签: java jackson yaml

我正在开发一个将文件从JSON转换为YAML的项目。我正在使用以下库的2.8.3版本:

  • 杰克逊核
  • 杰克逊数据绑定
  • 杰克逊 - DATAFORMAT-YAML
  • 杰克逊 - 注解

我的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值封装在引号中?

1 个答案:

答案 0 :(得分:12)

有一个名为MINIMIZE_QUOTESYAMLGenerator功能会关闭引号。

您可以YAMLFactory创建ObjectMapper mapper = new ObjectMapper(new YAMLFactory().enable(Feature.MINIMIZE_QUOTES)); ,如此:

{{1}}