mar*_*nes 4 c++ json boost boost-propertytree
我正在为Boost属性树编写JSON包装器.目前,重点是将生成的JSON写入字符串或文件.
使用boost :: property_tree :: json_parser :: write_json(ss,*pt)生成的属性树以字符串形式写入.
但是这种方法不理解什么是true,false,null或数字.一切都转换为字符串.
阅读Boost文档,这是库的限制.有没有办法修改这种行为?
mar*_*nes 11
链接在此链接中是对问题的修复.
它涉及改变增强代码,因为我尝试了另一种选择.我的解决方案涉及正则表达
std::string JSONObject::toString() const
{
boost::regex exp("\"(null|true|false|[0-9]+(\\.[0-9]+)?)\"");
std::stringstream ss;
boost::property_tree::json_parser::write_json(ss, *pt);
std::string rv = boost::regex_replace(ss.str(), exp, "$1");
return rv;
}
Run Code Online (Sandbox Code Playgroud)
基本上我搜索关键字:true,false,null和任何类型的数字.匹配被替换为没有引号的匹配.
| 归档时间: |
|
| 查看次数: |
2158 次 |
| 最近记录: |