mkd*_*dym 5 c++ arrays json boost
我正在尝试在 json 中创建一个数组节点,其输出是这样的:
{
node: ["12", "13"]
}
Run Code Online (Sandbox Code Playgroud)
但是当数组为空时,它会输出:
{
node: ""
}
Run Code Online (Sandbox Code Playgroud)
这不是我想要的,我需要这个:
{
node: []
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?而且我不需要数字周围的双引号(“”)。任何人都可以帮忙吗?
我的代码如下:
boost::property_tree::ptree pt;
boost::property_tree::ptree array;
for (vector<int>::const_iterator iter = v.begin();
iter != v.end();
++iter)
{
boost::property_tree::ptree node;
node.put("code", *iter);
array.push_back(std::make_pair("", node));
}
pt.add_child("array", array);
Run Code Online (Sandbox Code Playgroud)
感谢您的关注。
PSA Boost 1.75.0 引入了 Boost JSON;它可以做到这一点:现场演示
Run Code Online (Sandbox Code Playgroud)std::cout << json::object{{"node", json::array{}}};
Boost 没有 JSON 库。它有一个属性树(认为:分层配置格式)库。
文档:http : //www.boost.org/doc/libs/1_58_0/doc/html/property_tree/parsers.html#property_tree.parsers.json_parser
它特别指出有些事情没有得到很好的支持:
这适合 Boost PropertyTree 的预期应用领域。如果它不适合您的问题,请使用 JSON 库。