16

boost ::propertytreeを使用して配列を作成する方法がわかりません。次のコード..。

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>

#include <iostream>

int main()
{
  try {
    boost::property_tree::ptree props;
    props.push_back(std::make_pair("foo", "bar"));
    props.push_back(std::make_pair("foo", "baz"));
    boost::property_tree::write_json("prob.json", props);
  } catch (const std::exception & ex) {
    std::cout << ex.what() << std::endl;
  }
}

...私に...

{
  "foo": "bar",
  "foo": "baz"
}

boost::property_treeに関するドキュメントはまばらです。boost :: property_treeを使用してJSON配列を作成するにはどうすればよいですか?

4

1 に答える 1

21

ノードのみが空のキーを持つサブツリーがある場合、それは配列としてシリアル化されます。

boost::property_tree::ptree array;
array.push_back(std::make_pair("", "bar"));
array.push_back(std::make_pair("", "baz"));

boost::property_tree::ptree props;
props.push_back(std::make_pair("array", array));

boost::property_tree::write_json("prob.json", props);
于 2010-09-20T12:59:08.217 に答える