gpt4 book ai didi

java - 在保留注释的同时在 java 中修改 YAML

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:33:05 29 4
gpt4 key购买 nike

我们如何修改现有的 YAML 并在其中保留评论。是否有任何 Java 解析器可以做到这一点? 例如,如果我有以下 YAML:

#This is a test YAML
name: abcd
age: 23
#Test YAML ends here.

有没有一种方法可以使用 Java 解析器编辑此 Yaml 并保留注释。

最佳答案

截至撰写本文时,还没有适用于 Java 的往返 YAML 解析器。有众所周知的SnakeYAML ,它不保留注释(参见 author's comment here ),以及一个名为 camel 的较新项目,我对此知之甚少;但这绝对不是往返。

理论上你可以做的是使用 SnakeYaml 的 Yaml.parse 然后迭代事件。每个事件都有一个开始和结束标记,给出事件的开始和结束行和列。这使得将事件映射回源并发现未解析为事件的源部分(可能是注释)成为可能。有了这个映射,您现在可以修改事件列表并将其写回。最后,您第二次读取结​​果并发现原始 YAML 中有注释但修改后的 YAML 中没有注释的事件之间的差距,然后重新插入这些注释,为您提供经过修改的最终 YAML 评论。

当然,这很复杂。我不建议您这样做,除非您 a) 对 YAML 的结构有深入的了解或愿意学习它,并且 b) 您的用例证明了这些工作量是合理的。

关于java - 在保留注释的同时在 java 中修改 YAML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49812027/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com