如何使用boost解析具有嵌套json类型对象的json

时间:2017-07-06 14:45:00

标签: c++ json boost

我有一个看起来像

的json
{{1}}

我希望每次使用每个键值对一次使用boost库(也欢迎使用cpp中的任何其他方法),以便稍后将它们保存在相关的容器中。

2 个答案:

答案 0 :(得分:1)

以下代码段遍历每个密钥对并将其存储在相关集合中:

#include <boost/property_tree/json_parser.hpp>

using boost::property_tree::ptree;

int main() {
    ptree pt;
    std::ifstream ifs("input.txt");
    read_json(ifs, pt);
}

这些收藏品形成一棵树。值得注意的是,属性树。这可能是你需要的,也可能不是,因为你的目标没有给出。

答案 1 :(得分:0)

我实际上是使用Json for modern C++来管理任何Json。它非常直观,易于集成。

我真的不知道你想要达到的键值,但是假设你想将第一个孩子的名字存储在一个字符串变量中。

你会像这样解析你的json:

json yourJson = json::parse(yourJsonString);

然后您将访问该名称并将其存储在字符串变量中,如下所示:

string nameFirstChildren = yourJson["children"][0]["name"].get<string>();

然后,您可以将其保存在您选择的容器中,或者您可以在不使用字符串变量的情况下将其保存到容器中。

什么对你有用!

您也可以使用RapidJson