使用Boost序列化和反序列化JSON

我是C

++的新手。std::Map使用反序列化" title="序列化和反序列化">序列化和反序列化类型数据的最简单方法是什么boost。我发现了一些使用示例,PropertyTree但它们对我来说是晦涩的。

回答:

请注意,property_tree将键解释为路径,例如,将对“ ab” =“ z”放置将创建{“ a”:{“ b”:“ z”}} JSON,而不是{“

ab”:“ z”} 。否则,使用property_tree是微不足道的。这是一个小例子。

#include <sstream>

#include <map>

#include <boost/property_tree/ptree.hpp>

#include <boost/property_tree/json_parser.hpp>

using boost::property_tree::ptree;

using boost::property_tree::read_json;

using boost::property_tree::write_json;

void example() {

// Write json.

ptree pt;

pt.put ("foo", "bar");

std::ostringstream buf;

write_json (buf, pt, false);

std::string json = buf.str(); // {"foo":"bar"}

// Read json.

ptree pt2;

std::istringstream is (json);

read_json (is, pt2);

std::string foo = pt2.get<std::string> ("foo");

}

std::string map2json (const std::map<std::string, std::string>& map) {

ptree pt;

for (auto& entry: map)

pt.put (entry.first, entry.second);

std::ostringstream buf;

write_json (buf, pt, false);

return buf.str();

}

以上是 使用Boost序列化和反序列化JSON 的全部内容, 来源链接: utcz.com/qa/424685.html

回到顶部