首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用yaml-cpp发射JSON?

用yaml-cpp发射JSON?
EN

Stack Overflow用户
提问于 2017-05-10 21:21:01
回答 2查看 3.1K关注 0票数 7

我用yaml-cpp在我的项目中做了很多事情。现在,我想以JSON的形式写出一些数据。由于JSON是YAML的一个子集,至少对于我需要的特性来说,我理解在yaml-cpp中设置一些选项来输出纯JSON是可能的。那是怎么做到的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-10 22:56:25

yaml-cpp没有直接强制与JSON兼容的输出的方法,但是您可能可以模仿它。

代码语言:javascript
复制
YAML:Emitter Emitter;
emitter << YAML:: DoubleQuoted << YAML::Flow << /* rest of code */;
票数 4
EN

Stack Overflow用户

发布于 2021-03-10 01:11:58

杰西·比德的答案似乎不适用于我;我仍然使用YAML语法获得多行输出。然而,我发现,通过在<< YAML::Flow之后立即添加<< YAML::BeginSeq,可以强制所有东西都使用JSON语法在一行上结束。然后,您必须删除开头的[字符:

代码语言:javascript
复制
YAML::Emitter emitter;
emitter << YAML::DoubleQuoted << YAML::Flow << YAML::BeginSeq << node;
std::string json(emitter.c_str() + 1);  // Remove beginning [ character

下面是一个充分发挥作用的例子

然而,仍然有一个主要问题:数字被引用,将它们转化为字符串。我不确定这是否是YAML::DoubleQuoted的故意行为;在测试中,我没有看到任何测试用例涵盖当您将DoubleQuoted应用于一个数字时会发生什么。此问题已提交这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43902941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档