You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SnakeYAML-engine中将YAML解析为Node并获取键的行号

问题描述

我需要在Java代码库中解析YAML文件,同时要获取解析后各键对应的行号,解析必须遵循YAML 1.2规范。目前使用SnakeYAML engine,也可以切换到其他合适的库。

调研进展

我选择使用SnakeYAML engine是因为它支持YAML 1.2规范,而SnakeYAML仅支持1.1规范。针对SnakeYAML,我找到过一段可用的代码片段:

Node node = yaml.compose(new InputStreamReader(yamlStream));

其中的Node类正好能满足需求,它包含了每个关键字在文件中的行号信息,但这段代码只适用于SnakeYAML,不适用于SnakeYAML engine。

我需要实现等效的功能,注意到SnakeYAML engine中也有对应的Node类(org.snakeyaml.engine.v2.nodes.Node),它的类注释提到:

[...] the node graph is usually created by the org.snakeyaml.engine.v2.composer.Composer

但我在SnakeYAML engine的文档里找不到相关的实用说明,网上也没有找到可用资源,希望能得到帮助。

应用详情

我使用Java 11,上述类来自SnakeYAML engine 2.0版本,也可以根据需求更换其他版本。

参考代码

build.gradle配置

//implementation 'org.yaml:snakeyaml:1.27', if you want to test it
implementation 'org.snakeyaml:snakeyaml-engine:2.0'

Main.java的main方法代码

//code for SnakeYAML
Node node = new org.yaml.snakeyaml.Yaml().compose(new StringReader("key: value"));

内容的提问来源于stack exchange,提问作者Francesco Urdih

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 00:05:04