我想用boost库创建一个类似如下例子的json
{
"head" : {
"serv" : "1",
"test" : 2
},
"body" : {}
}
body是空,但是也是一个boost::property_tree::ptree,现在通过put方法和add_child方法创建出来的json在write_json序列化之后,body就变成这样了 ”body” :“”,所以是应该怎么做才行呢。
经过自己试验,发现boost的json组装本身确实无法做到空对象的情况,尝试变通write_json(ss,pt,false);用正则表达式boost::regex exp(""(null|true|false|[0-9]+(\.[0-9]+)?)"");std::string rv = boost::regex_replace(ss.str(), exp, "$1");将原为int、float、bool转成原来的类型,通过赋给body特殊字符,string::erase删除特殊字符和分号,最终达到目的。