使用 Jackson 将 Java 对象实例写入 YAML
Posted
技术标签:
【中文标题】使用 Jackson 将 Java 对象实例写入 YAML【英文标题】:Writing Java object instance to YAML using Jackson 【发布时间】:2018-03-08 19:42:41 【问题描述】:我有一个“示例”Pojo 类,如下所述。 任何人都可以使用 Jackson 将 Example 类的实例保存到 YAML 文件中。
public class Example
String name;
int value;
public String getName()
return name;
public void setName(String name)
this.name = name;
public int getValue()
return value;
public void setValue(int value)
this.value = value;
【问题讨论】:
只是说,SnakeYaml 可以自己完成此操作,并且与使用 Jackson 相比,您可以对其进行更多控制。如果 Jackson 不是必需的,请将其删除并直接使用 SnakeYaml。 【参考方案1】:杰克逊有一个module that supports YAML。确保您将required dependency 添加到您的项目中,然后您可以按如下方式使用它:
// Create an ObjectMapper mapper for YAML
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
// Write object as YAML file
mapper.writeValue(new File("/path/to/yaml/file"), example);
或者你可以将你的对象写成一个字符串:
// Write object as YAML string
String yaml = mapper.writeValueAsString(example);
【讨论】:
当我使用这段代码时,它会在文件的第一个添加一行(注释行为---)??这个拳头线怎么去掉? @M2E67 试试ObjectMapper mapper = new ObjectMapper(new YAMLFactory().disable(Feature.WRITE_DOC_START_MARKER));
。请参阅documentation。以上是关于使用 Jackson 将 Java 对象实例写入 YAML的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Jackson 将原始 JSON 反序列化为 Java 对象
Apache Beam 的 BigQueryIO (Java):无法将 TIMESTAMP 字段写入 BigQuery——fastxml.jackson 异常“类型不支持”
使用 Spring 和 Jackson JSON 将 java.io.Serializable 实例序列化为 JSON [重复]