Я использую следующий код для создания массива чисел.
После запуска следующего кода я получаю следующие результаты:
{
"": "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 не имеет таких функций.
Все текстовое в сериализованных форматах. Даже если выбран формат бэкэнда мог поддержка (ограниченная) типизированных данных.
Документация доказательство:
Как я продолжаю повторять:
Boost делает не есть библиотека XML.
Boost делает не есть библиотека JSON.
У Boost есть библиотека дерева свойств. Он имеет дело с деревьями собственности. Не JSON, XML или что-то еще.
Других решений пока нет …