1

网上已经发布了许多示例,演示了如何使用 boost 的属性树创建 JSON 数组。

基本语法是:

boost::property_tree::ptree array;
array.push_back(std::make_pair("", "value-1"));
array.push_back(std::make_pair("", "value-2"));

使用 boost 1.54 和 visual studio c++ 2012 似乎无法正常工作。使用 VC 2010 和相同的 boost 版本可以正常工作。

我收到的错误是“无法将参数 1 从 std::pair<_Ty1,_Ty2> 转换为 const std::pair<_Ty1,_Ty2> &”

其他人可能对解决此问题提出的任何建议将不胜感激。

4

1 回答 1

0

ptree::push_back需要一个ptree::value_type. 这不是一个pair<key, value>,而是一个pair<key, ptree>。push_back() 转发到 insert(),它将给定的 ptree(用 pair::second 定义)复制到当前 ptree

我建议坚持ptree.add()。请参阅五分钟教程,它基本上完成了您想要对一组同名节点执行的操作

于 2013-11-08T01:07:18.070 回答