如何将 JSON 键值(我使用 cpp boost 解析)存储在相关数据结构中?

How do I store a JSON key values (which I have parsed with cpp boost) in relevant data structure?

本文关键字:存储 解析 数据结构 boost cpp JSON 键值      更新时间:2023-10-16

我的Json现在有一些这种格式(当然以后可以改变(

{key1 : value1,
key2 : value2,
key3 :{key31 : value31,
key32 : value32,
key33 : value33
},
key4 : {key41 : value41;
key42:[ {key4a: value4a,
key4b: value4b,
key4c: {key4d: value 4d},
key4e: [v1 ,v2 ,v3]
} ,...can be more values here ]
}
}

为了遍历它,我正在使用:

#include "boost/property_tree/ptree.hpp"
#include "boost/property_tree/json_parser.hpp"
#include "boost/foreach.hpp"

void traverse(boost::property_tree::ptree pt){
using boost::property_tree::ptree;
for (ptree::value_type &v : pt)
{
std::cout<<v.first<<" - "<<v.second.data()<<std::endl;

if (v.second.size() >= 1){
traverse(v.second);
}
}
}

有了这个,我能够触摸我的 JSON 的每个节点。 我现在正在寻找一种更好的方法来解析和存储 Json 键:值。

我认为你低估了属性树的能力。它是存储和访问 json 和 xml 的好工具,例如信息,这就是为什么它在 boost 中引入了 json_parser 和 xml_parser。

在这里 使用 boost::p roperty_tree::string_path 访问值 在问题中,您可以看到如何使用类似路径的字符串访问属性树中的值的工作示例。