当我put_value
使用int时,它会以字符串形式写入。有人知道如何将其打印为int吗?
#include <iostream>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
using boost::property_tree::ptree;
using namespace std;
int main(int argc, char* argv[]) {
ptree node;
node.put("string", "text here");
node.put("int", 1);//outputs as "1" and should be 1
write_json(cout, node, false);//{"string":"text here","int":"1"}
return 0;
}
该库显然不支持它。
Boost属性库尚未命名为“ Boost Json库”,因为它不是JSON库。相反,它是一个属性树库(恰好出于其目的而使用JSON子集)。
从文档中:
属性树数据集未键入,因此不支持数组。因此,使用以下JSON /属性树映射:
- JSON对象被映射到节点。每个属性都是一个子节点。
- JSON数组映射到节点。每个元素都是一个空名称的子节点。如果节点同时具有已命名和未命名的子节点,则无法将其映射到JSON表示形式。
- JSON值映射到包含该值的节点。但是,所有类型的信息都会丢失。数字以及文字“ null”,“ true”和“ false”仅映射到其字符串形式。
- 包含子节点和数据的属性树节点无法映射。
和
JSON往返,但类型信息丢失除外。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句