返回信息流求问版上的大神们:
"{\"adid\": 15051405020036525073,"\name\":\"abc\"}"
从数据库中取出的数据格式是这样的,需要对其进行cjson的解析,但是由于
15051405020036525073并没有用“”包含,所以默认是返回的最大的longlongint数,求问这个问题怎么解决,妹子再此拜谢啦!!
这是一条镜像帖。来源:北邮人论坛 / cpp / #87510同步于 2015/6/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[问题]cjson的解析问题
angleqlssy
2015/6/11镜像同步27 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
关键是现在整套代码都是c++,不能我说用python就能用的嘛,要不然也不这么纠结了
【 在 nuanyangyang 的大作中提到: 】
: 用Python吧,只有一种int类型,而且自带JSON解析器。
好吧。那么,问题是什么呢?
1. 是“long long int”类型太大了,你想要小一点的整数类型,比如int,
2. 还是“long long int”太小了,你需要精确地表示那个数(JSON里可以是整数也可以是小数)?
3. 还是你希望发送端将其按字符串发送,接收端按字符串接收?
这个明显是协议有问题啊,生成这个json的时候,adid用的是什么类型?楼主试试unsigned long long int吧 如果cjson不支持这个类型,那只能去github上搜搜别的库了,或者自己撸个json parser
【 在 nuanyangyang 的大作中提到: 】
: 好吧。那么,问题是什么呢?
: 1. 是“long long int”类型太大了,你想要小一点的整数类型,比如int,
: 2. 还是“long long int”太小了,你需要精确地表示那个数(JSON里可以是整数也可以是小数)?
: ...................
……我觉得正确的做法是 用Python解析完了存到文件里然后用C++去读……
【 在 gluowei 的大作中提到: 】
:
: ……我觉得正确的做法是 用Python解析完了存到文件里然后用C++去读……
关键是存成什么文件呢?如果又存成JSON,那就又是JSON解析问题了。
用的是cJSON.valueint吧?试试cJSON.valuedouble,然后转64位程序的long long
【 在 angleqlssy 的大作中提到: 】
: 求问版上的大神们:
: "{\"adid\": 15051405020036525073,"\name\":\"abc\"}"
: 从数据库中取出的数据格式是这样的,需要对其进行cjson的解析,但是由于
: ...................
【 在 nuanyangyang 的大作中提到: 】
:
: 关键是存成什么文件呢?如果又存成JSON,那就又是JSON解析问题了。
不太清楚这个库是怎么转换的……
能转换成字符串再解析会比较靠谱吧……0 0