2
문자열 트리에서 read_json으로 속성 트리를 만들고 write_json으로 스트림에 다시 쓰면 read_json으로 다시로드하려고 시도합니다. " 의 인스턴스 던지는 '부스트 :: exception_detail :: clone_impl>' 무엇을() : (1) : 객체 또는 배열을 "예상부스트 read_json 및 write_json은 속성 트리에 대해 동일하지 않습니다
이 코드는 forementioned 예외와 함께 실패
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
using boost::property_tree::ptree;
ptree pt;
stringstream pippo("{\"size\":1000,\"reserved\":100,\"list\": {\"122\":1,\"123\":3}}");
read_json(pippo,pt);
write_json(pippo,pt,false);
read_json(pippo,pt);
하지만 경우 I 이 방법으로 내 코드를 변경하면 작동합니다.
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
using boost::property_tree::ptree;
ptree pt;
stringstream pippo("{\"size\":1000,\"reserved\":100,\"list\": {\"122\":1,\"123\":3}}");
read_json(pippo,pt);
write_json(pippo,pt,false);
stringstream pluto(pippo.str());
read_json(pluto,pt);
물론 이것은 "Boost PT의 디자인 속성"이 아닙니다. 스트림의 의미와 특히 문자열 스트림의 의미입니다. – sehe