2

我使用以下代码创建一个数字数组。

运行以下代码后,我得到以下结果:

{
    "": "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;
}
4

1 回答 1

1

PTree 没有这样的功能。

一切都是序列化格式的文本。即使选择的后端格式可以支持(有限的)类型数据。

文件证明

在此处输入图像描述

正如我不断重申的那样:

Boost 没有XML库。

Boost 没有JSON库。

Boost 有一个属性树库。它处理属性树。不是 JSON、XML 或其他任何东西。

于 2017-01-12T13:08:35.843 回答