我使用以下代码创建数字数组。
运行以下代码后,我得到以下结果:
{
"": "1.100000",
"": "2.200000",
"": "3.300000"
}
很好,除了我想要的结果必须是数字数组而不是字符串。通过
boost::property_tree::ptree(x)
直接添加数字也给我一个错误。如何产生我的输出json结果?{
"": 1.100000,
"": 2.200000,
"": 3.300000
}
码:
#include <iostream>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
int main()
{
boost::property_tree::ptree pt;
std::vector<double> Vec={1.1,2.2,3.3};
for(double x:Vec)
{
std::string x_string=std::to_string(x);
pt.push_back(
std::make_pair("",
boost::property_tree::ptree(x_string)) );
}
boost::property_tree::json_parser::write_json(std::cout, pt);
std::cout<<std::endl;
return 0;
}
最佳答案
PTree没有此类功能。
一切都是序列化格式的文本。即使所选的后端格式可以支持(有限的)类型数据。
文档proof:
随着我不断重申:
Boost没有XML库。
Boost没有JSON库。
Boost具有属性树库。它处理属性树。不是JSON,XML或其他。
关于c++ - boost ptree数字数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41609939/