前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jsoncpp 不能处理long类型数据

jsoncpp 不能处理long类型数据

作者头像
全栈程序员站长
发布2022-07-13 16:27:09
1.7K0
发布2022-07-13 16:27:09
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

jsoncpp,是一个c++的解析和生成json的开源工具。假设你的c++程序须要解析或生成json,它会使这个过程变得非常easy!

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

代码语言:javascript
复制
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类型是它美中不足的地方。

希望兴许的升级可以解决问题!~

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/118304.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年12月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档