2017-01-12 2 views
1

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

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

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

Возможно использование pt.put()? – pSoLT

+0

@pSoLT, 'put' не распознает пустой путь. – ar2015

+0

Ты прав, мой плохой. – pSoLT

ответ

0

Ptree не имеет таких возможностей.

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

Документация proof:

enter image description here

Как я храню Перефразирование:

подталкивания делает не есть библиотека XML.

Boost делает не есть библиотека JSON.

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

Смежные вопросы