BOOST不支持JSON输出数字值

前文刚讲述过boost的porperty_tree在JSON上的一些问题,最近使用又发现一些问题,可能大家都可能发现了,就是用该库来生成JSON的时候,不支持数字等非字符串类型的值。

问题描述

如果在使用boost解析JSON可能感觉不到,如果在生成的时候,如下

boost::property_tree::ptree root;
root.put<int>("key", 0);

std::stringstream ss;
boost::property_tree::write_json(ss, root, false);

这样生成的JSON会是这样

{ "key": "0" }

确实和我们想象的不一样,很多时候这种生成结果将会导致后续无法使用。

如何解决

我搜索了一些方法,感觉并不是太可取,建议还是替换使用其他库。

一些可参考的解决方法,供参考,或者参考借鉴或者在此基础上改进

https://xbuba.com/questions/2855741

最近的文章

CentOS6支持到期后配置备份更新源

CentOS 6 的支持在上个月到期了,各个更新源都下线了,线上一堆的服务器又不能升级,偶尔安装个软件可怎么办,其实官方还保留了一个备份的源用来更新,虽然不升级了,但至少安装软件没问题。 配置备份虽然说备份已经没啥用了,但是作为良好的操作习惯,还是建议做一下。 备份目录 /etc/yum.repo. …

技术 继续阅读
更早的文章

BOOST生成JSON中文乱码

最近Linux生产环境在用boost库生成json的时候发现中文乱码,经调测发现是boost库的bug,在此记录。 boost生成Json一般用法boost有两个数据结构,其中一个是 property::ptree, 这个数据结构可以表示 xml json ini 等格式的文件内容,在不使用第三方比 …

技术 继续阅读