如何将 JSON 键值(我使用 cpp boost 解析)存储在相关数据结构中?
How do I store a JSON key values (which I have parsed with cpp boost) in relevant data structure?
我的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 访问值 在问题中,您可以看到如何使用类似路径的字符串访问属性树中的值的工作示例。
相关文章:
- Boost program_options将多个配置文件解析结果存储到一个parsed_options中
- 如何解析列存储格式的XML文件
- 存储/传递 v8 承诺解析器供以后使用的最佳实践?(结合C++线程)
- 解析文件并将其存储在类中
- 如何将 JSON 键值(我使用 cpp boost 解析)存储在相关数据结构中?
- OpenCV 文件存储 - 错误:元素之间的解析错误 (icvYMLParseValue) 缺失
- 虚拟函数在哪里使用 vpointer to vtable 来解析方法调用,非虚拟方法存储在哪里以及如何解析它们?
- Boost::p roperty_tree:在XML解析器中使用std::vector<>在一个键中存储多个值
- 访问和存储/解析性std :: Chrono ::持续时间:: milliseconds(cpprest)时使用什么类型
- 从数据文件中解析时间戳并存储在矢量中
- 解析文件中的数据并存储在对象中
- 解析大型文本文件并使用C++将其存储在树(二进制或 AVL)中
- 使用getline解析和存储变量
- 在不存储的情况下解析文本文件 (tftp)
- c ++如何使用boost xml解析器读取XML并存储在map中
- 如何将团队信息从文件解析并存储到类中
- 如何在C++中仅将.CSV文件的一列解析、读取和存储到数组中
- 如何解析用户的输入并将每个单独的字符存储为字符串
- 使用分隔符通过'Street; City; State; Country'将每个区域存储到不同的变量中来解析地址
- 读取输入行并将其解析为STL存储c++