2017-01-12 8 views
1

다음 코드를 사용하여 숫자 배열을 만듭니다. 그것은 내 원하는 결과를 제외하고 좋은숫자의 부스트 배열

{ 
    "": "1.100000", 
    "": "2.200000", 
    "": "3.300000" 
} 

수없는 문자열의 배열한다 :

다음 코드를 실행 한 후, 나는 다음과 같은 결과를 reveive. 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 :

부스트 하지는 XML 라이브러리를 가지고 :

enter image description here

내가 다시 나타 유지한다.

부스트합니까 아니요에는 JSON 라이브러리가 있습니다.

부스트에는 속성 트리 라이브러리가 있습니다. 그것은 재산 나무를 다룹니다. JSON, XML 또는 그 밖의 것은 아닙니다.