将Json :: Value转换为std :: string?

我正在使用JsonCpp来构建一个JSON对象.一旦构建了对象,有没有办法让对象成为一个std::string

Jor*_*yle 36

你可以使用Json :: Writer来做到这一点,因为我假设你想将它保存在某个地方所以你不想要人类可读的输出,你最好的选择是使用Json :: FastWriter然后你可以调用write使用您的Json :: Value(即您的根)的参数的方法,然后只返回std::string如下所示:

Json::FastWriter fastWriter;
std::string output = fastWriter.write(root);

  • 虽然这很好用,但当前版本的JsonCPP表示Json :: FastWriter已被弃用,转而使用Json :: StreamWriterBuilder.但是删除了写入字符串的功能,现在有必要写入std :: stringstream.你能详细说明吗? (5认同)


mar*_*ias 13

Json::Writer不推荐使用,Json::StreamWriterBuilder应该使用,如文档中所述Json::Writer.

Json::writeString 写入字符串流然后返回一个字符串:

Json::Value json = ...;
Json::StreamWriterBuilder builder;
builder["indentation"] = ""; // If you want whitespace-less outputconststd::string output = Json::writeString(builder, json);

感谢cdunn2001的回答:如何将JsonCPP值作为字符串?


小智 8

您还可以使用 toStyledString() 方法。

jsonValue.toStyledString();

方法“ toStyledString() ”将任何值转换为格式化字符串。另请参阅链接:toStyledString 的文档

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值