我有一个YAML文件,看起来像这样:
--- name: Sam tags: - Dev - Java ---- name: Bob tags: - PM
我想使用Jackson来反序列化文件中的所有文档,但是我没有看到使用普通文件的方法ObjectMapper
.如果我使用 看起来我的YAMLFactory创建的解析器只解析文件中的单个文档.YAMLFactory
为我的文件创建一个解析器,我可以单步执行所有标记,因此解析器显然能够处理多个文档 - 但是如何将它们绑在一起?
我也尝试直接创建YAMLParser并使用ObjectMapper#readValue(JsonParser, Class)
,但ObjectMapper耗尽了整个YAMLParser来反序列化单个实例.
这是几年后,但值得指出的是,这是支持的.杰克逊的语义略有不同,可能是因为它的JSON起源.这可以通过使用MappingIterator
from 来实现ObjectMapper
.
YAMLFactory yaml; ObjectMapper mapper; YAMLParser yamlParser = yaml.createParser("file-with-multiple-docs.yaml") List<ObjectNode> docs = mapper .readValues<ObjectNode>(yamlParser, new TypeReference<ObjectNode> {}) .readAll();
ObjectNode
如果需要,请替换为您自己的POJO.