【问题标题】:C++ boost parse dynamically generated json string (not a file)C++ boost解析动态生成的json字符串(不是文件)
【发布时间】: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* 而不是文件的速度?

谢谢

【问题讨论】:

标签: c++ json boost


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多