jsoncpp 不能处理long类型数据

jsoncpp,是一个c++的解析和生成json的开源工具。如果你的c++程序需要解析或生成json,它会使这个过程变得很简单!

但是,今天在用jsoncpp进行生成json的时候报了错误,很显然这不是我程序的问题。

Test.cpp: In function ‘std::string createJsonData()’:
Test.cpp:41: error: conversion from ‘long long int’ to ‘const Json::Value’ is ambiguous
include/json/value.h:205: note: candidates are: Json::Value::Value(bool)
include/json/value.h:188: note:                 Json::Value::Value(const char*) <near match>
include/json/value.h:187: note:                 Json::Value::Value(double)
include/json/value.h:186: note:                 Json::Value::Value(Json::UInt)
include/json/value.h:185: note:                 Json::Value::Value(Json::Int)
include/json/value.h:184: note:                 Json::Value::Value(Json::ValueType) <near match>

当我的要生成json的数据中包含long类型时,出现了这个错误!如果将long改为int或double则可以通过编译。

根据错误信息,很显然,jsoncpp并没有实现插入数据中有long类新的接口。所以jsoncpp无法处理包含long类新的数据。

在网上搜了一下,有人解释为何jsoncpp不支持long数据的接口,“为什么JsonCpp里面为什么没有64位整数?Json起源于javascript,在js中数字的表示可能与高级语言中不一样, 如果一位数字32位表示不了那么js中应该一律都是用double表示, 所以说js中 大整数其实也是double, 这也就能解释为什么在jsoncpp中为什么没提供64为整数转化的方法。


我尝试将long类型改为double类型,可以通过,不过生成的json串中,long-》double的数据会在数字后面多一个小数点。这并不是我想要的!

jsoncpp是个不错的工具,但不能处理long类型是它美中不足的地方。

希望后续的升级能够解决这个问题!~

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值