如何输出boost属性树作为JSON编码的字符串?

时间:2016-04-26 14:44:34

标签: json boost boost-propertytree

有时创建用于表示和交换数据的JSON编码字符串非常有用。 将Boost属性树编码为JSON字符串的最佳方法是什么?

1 个答案:

答案 0 :(得分:13)

以下是执行该任务的示例代码:

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
#include <boost/optional.hpp>
#include <iostream>
#include <sstream>
#include <cstdlib>

int main()
{
    boost::property_tree::ptree pt;
    pt.put("Test", "string");
    pt.put("Test2.inner0", "string2");
    pt.put("Test2.inner1", "string3");
    pt.put("Test2.inner2", 1234);

    std::stringstream ss;
    boost::property_tree::json_parser::write_json(ss, pt);

    std::cout << ss.str() << std::endl;

    return 0;
}

使用GCC编译此代码:

g++ main.cpp -lboost_system -o SamplePT_JSON

这是预期的输出:

{
    "Test": "string",
    "Test2":
    {
        "inner0": "string2",
        "inner1": "string3",
        "inner2": "1234"
    }
}