c++ - 为什么 boost::property_tree::write_json() 将整数值转换为字符串?这是不正确的。
问题描述
我的输入:data.txt
{
"target_url":"www.19lou.com/forum-1637-thread-10031471311655793-1-1.html",
"trespassing_field":{
"ratetype":5,
"spider":{
"prod_name":"name",
"link_src":1
}
}
}
使用代码:
boost::property_tree::ptree json_tree;
boost::property_tree::read_json("data.txt", json_tree);
std::stringstream json_main_pack;
boost::property_tree::write_json(json_main_pack, json_tree);
LOG(NOTICE) << "json: " << json_main_pack.str();
输出:
{
"target_url": "www.19lou.com\/forum-1637-thread-10031471311655793-1-1.html",
"trespassing_field": {
"ratetype": "5",
"spider": {
"prod_name": "name",
"link_src": "1"
}
}
}
write_json() 将整数值转换"ratetype":5
为字符串。它转换为"ratetype": "5"
。这是不正确的。如何准确转换?输入整数值,然后输出整数值。
解决方案
从此处的 Boost.PropertyTree 文档中,看起来所有类型信息都丢失了。相关报价:
JSON 值映射到包含该值的节点。但是,所有类型信息都丢失了;数字以及文字“null”、“true”和“false”都简单地映射到它们的字符串形式。
强调我的。不幸的是,如果您想保留类型信息,您可能需要使用不同的 JSON 解析器。
推荐阅读
- python - 目前在列表、字符串和整数方面遇到问题
- react-native - Redux-Thunk 无法在组件中获取道具
- kotlin - 如何在 ktor-client 中禁用重定向
- c++ - 新的新建项目向导 (VS) 中不存在 stdafx.h
- angular - Angular Json 上课
- c# - Visual Studio - 为每个解决方案设置不同的端口
- python - 在有序数组中查找有序数组
- google-apps-script - 如何让 Google 表单根据用户输入从 Google 表格中检索数据?
- css - 选择没有类的最后一个元素
- python - 根据“2 个连续”条目将列表拆分为多个嵌套列表