C++ 中的 Yaml 发射器

Posted

技术标签:

【中文标题】C++ 中的 Yaml 发射器【英文标题】:Yaml Emitter in C++ 【发布时间】:2010-10-19 18:42:35 【问题描述】:

是否有用于发出 YAML 的 C++ 库? Wikipedia 提到了 libyaml 的 c++ 包装器,但链接已损坏。官方 YAML 站点仅提供 yaml-cpp,这也在 this SO question 中提出,但 cpp-yaml 只是解析器,而不是发射器。我运气不好?

编辑:我正在寻找面向对象的接口,因此需要 C++。我知道我可以在 C++ 代码中使用 libyaml 的 C 接口,但这并不理想。

【问题讨论】:

我是yaml-cpp的作者,一直想写一个发射器,但是由于我自己的项目不需要,所以一直没能想一个好的API。你想发出什么样的东西,什么是你理想的用户界面?如果您在 google 代码 wiki 中发表评论,我会非常感激不尽! 嗨,杰西。很高兴见到一个尝试 C++ YAML 库的大胆灵魂。考虑到我的问题没有得到回应,听起来你是我所寻找的最后最好的希望。我昨晚很晚才看了这个页面,但对一个好的 API 感到很吃力;这个周末我会多花点时间考虑一下。 太棒了!你想生成什么样的 YAML 文档?我还没有看到非人工构建的例子。 我想将它用作所有内容的序列化格式。我正在开始一个新项目,我想以人类可读的格式序列化我的所有类。我对 XML 的尖括号税不满意(感谢 Jeff!),而且人类读者很难解析原始文本输出。 好的,我在序列化方面给了它一些想法,它给了我一些想法。查看 wiki,让我知道您的想法(我将“Stream 方法”添加到最后)。 【参考方案1】:

根据您的建议,yaml-cpp 现在有一个发射器。

【讨论】:

【参考方案2】:

libyaml 怎么样?

LibYAML 是一个用 C 语言编写的 YAML 1.1 解析器和发射器。

更直接地说,emitter.c?

【讨论】:

我在我的问题中承认 libyaml,但我正在寻找一个 C++ 面向对象的接口。

以上是关于C++ 中的 Yaml 发射器的主要内容,如果未能解决你的问题,请参考以下文章

c++ 中的 yaml.cpp 库有问题

C++ YAML:如何编辑/写入 .yaml 文件中的节点

可以在不使用发射器和节点事件的情况下遍历 yaml-cpp 树吗?

是否可以在 yaml-cpp 中设置发射器缩进的基本级别?

如何将YAML节点中的序列作为字符串返回?

C++ 大向量搜索项