C++ boost解析动态生成的json字符串(不是文件)
Posted
技术标签:
【中文标题】C++ boost解析动态生成的json字符串(不是文件)【英文标题】:C++ boost parse dynamically generated json string (not a file) 【发布时间】:2014-02-03 20:59:48 【问题描述】:我正在尝试做一个读取 json 字符串的最小示例,该字符串作为带有 boost 的命令行 arg 传递。我对 C++ 非常陌生,并且还想提升。
我的代码是:
int main (int argc, char ** argv)
boost::property_tree::ptree pt;
boost::property_tree::read_json(argv[1], pt);
cout << pt.get<std::string>("foo");
我这样称呼它
./myprog " \"foo\" : \"bar\" "
但我收到“无法打开文件错误”。如何提高读取 std::string 或 char* 而不是文件的速度?
谢谢
【问题讨论】:
见这个:***.com/questions/12542399/…。 read_json 需要一个流,你给它一个字符串。 【参考方案1】:您可以将字符读入字符串流,然后将其传递给read_json
。
#include <sstream>
#include <iostream>
#include <boost/property_tree/json_parser.hpp>
int main (int argc, char ** argv)
std::stringstream ss;
ss << argv[1];
boost::property_tree::ptree pt;
boost::property_tree::read_json(ss, pt);
std::cout << pt.get<std::string>("foo") << std::endl;
输出
bar
【讨论】:
以上是关于C++ boost解析动态生成的json字符串(不是文件)的主要内容,如果未能解决你的问题,请参考以下文章