繁体   English   中英

如何让json使用正确的数据类型

[英]how to get boost json to use the correct data types

当我使用int put_value ,它被写为字符串。 有谁知道如何让它作为一个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 Property Library尚未命名为“Boost Json Library”,因为它不是JSON库。 相反,它是一个属性树库(碰巧使用 JSON子集用于其目的)。

文档

属性树数据集未键入,并且不支持数组。 因此,使用以下JSON /属性树映射:

  • JSON对象映射到节点。 每个属性都是子节点。
  • JSON数组映射到节点。 每个元素都是一个空名称的子节点。 如果节点同时具有命名和未命名子节点,则无法将其映射到JSON表示。
  • JSON值映射到包含该值的节点。 但是,所有类型信息都丢失了; 数字,以及文字“null”,“true”和“false”只是简单地映射到它们的字符串形式。
  • 无法映射包含子节点和数据的属性树节点。

JSON往返,除了类型信息丢失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM