BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #87510同步于 2015/6/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[问题]cjson的解析问题

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