Увеличить массив чисел

Я использую следующий код для создания массива чисел.

После запуска следующего кода я получаю следующие результаты:

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

1 ответ

Решение

PTree не имеет таких функций.

Все текстовое в сериализованных форматах. Даже если выбранный формат бэкэнда может поддерживать (ограниченные) типизированные данные.

Документальное подтверждение:

введите описание изображения здесь

Как я продолжаю повторять:

У Boost нет библиотеки XML.

У Boost нет библиотеки JSON.

У Boost есть библиотека дерева свойств. Он имеет дело с деревьями собственности. Не JSON, XML или что-то еще.

Другие вопросы по тегам