网上发布了一些示例,演示了如何使用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和相同的升级版本可以正常工作。
我收到的错误是“无法将参数1从std :: pair< _Ty1,_Ty2>转换为const std :: pair< _Ty1,_Ty2>&”
非常感谢其他人对解决这个问题的任何建议。
答案 0 :(得分:0)
ptree::push_back
需要ptree::value_type
。这不是pair<key, value>
而是pair<key, ptree>
。 push_back()转发到insert(),它将给定的ptree(用pair :: second定义)复制到当前的ptree中
我建议坚持ptree.add()
。请参阅the five minute tutorial,它基本上是您想要对一组同名节点执行的操作