2016-10-27 5 views
1

나는 write_json 출력 최상위 배열의 효과에 뭔가를하고 싶습니다 열쇠.부스트 ptree 최고 수준의 배열

{"":{...},"":{...},"":{...},..."":{...}} 

add_child를 사용하면 실제로 배열을 존중하고 나에게 가장 가까운 것을 제공합니다

{"Some Key":[{...},{...},{...},...,{...}]} 

을하지만 그게 내가 원하는 아직 아니다.

어떻게 그 배열을 최상위 수준으로 만들 수 있습니까?

답변

1

부스트에는 JSON 라이브러리가 없으며 (XML 라이브러리가 없습니다). 속성 트리 라이브러리 (JSON 호환 표현을 포함하는)가 있습니다. http://www.boost.org/doc/libs/1_62_0/doc/html/property_tree/parsers.html#property_tree.parsers.json_parser

속성 트리 세트가 입력되지 않으며, 같은 배열을 지원하지 않습니다 당신이로 실행

한계 완벽 분명히 거기 설명되어 있습니다. 따라서 다음 JSON/속성 트리 매핑이 사용됩니다.

  • JSON 개체가 노드에 매핑됩니다. 각 속성은 자식 노드입니다.
  • JSON 배열이 노드에 매핑됩니다. 각 요소는 빈 이름을 가진 하위 노드입니다. 노드에 명명 된 자식 노드와 명명되지 않은 자식 노드가 모두있는 경우 JSON 표현에 매핑 할 수 없습니다.
  • JSON 값은 값이 포함 된 노드에 매핑됩니다. 그러나 모든 유형 정보가 손실됩니다. 숫자, 리터럴 "null", "true"및 "false"는 단순히 문자열 형식으로 매핑됩니다.
  • 하위 노드와 데이터를 모두 포함하는 속성 트리 노드를 매핑 할 수 없습니다.
  • JSON 왕복 (유형 정보 손실 제외).

정확히 어떻게 실행하는지 예를 보여줍니다.