我正在使用boost :: property_tree来处理,编辑,然后重新输出一个非常大的json文件(该文件来自模拟器并包含数千个键值对)。读取json并进行适当的修改可以正常工作,但是boost property_tree的write_json函数将所有值都输出为字符串(如here所述)。
在我的情况下,在我的json字符串中,有大约10个(重复的)键,它们总是有一个数值(其余的键名是字符串)。所以我想知道是否有办法(可能使用boost的正则表达式匹配/替换)来搜索给定的密钥,并删除其值周围的引号。例如 - 如果我有字符串:
... "lots": "of", "key-value": "pairs", "numeric1": "12.3", "numeric2": "45.6", ...
我可能会搜索“numeric1”,然后删除后面的两个引号。对“numeric2”产生重复:
... "lots": "of", "key-value": "pairs", "numeric1": 12.3, "numeric2": 45.6, ...
注意:我可能有几百个“numeric1”键和几百个“numeric2”键需要在整个json字符串中转换为数字。想法?