CJSON 使用cJSON_AddNumberToObject添加数值后是空的?

忘尘散人 2020-12-02 11:18:02
在esp8266上,用cjson数据格式,封装json时,发现使用cJSON_AddNumberToObject添加一个数值类型的失败,打印封装后的数据市空的,添加string类型又可以。在windows平台下用vs2015测试过cjson,也是没问题的,在esp8266里面就出现键对应的值为空。打印结果如图所示,代码如下所示
	cJSON *root = NULL;
char* out = NULL;
root=cJSON_CreateObject();
if(NULL == root) printf("cJSON_CreateObject err\n");
cJSON_AddNumberToObject(root,"type", 2);
cJSON_AddNumberToObject(root,"errorCode", code);
cJSON_AddStringToObject(root, "str", "str");

out=cJSON_Print(root);
if( NULL == out) printf("cJSON_Print err");
cJSON_Delete(root);

sendToUart((unsigned char *)out, strlen(out));
printf("send : %s\n",out);
free(out);




...全文
30528 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
忘尘散人 2020-12-31
  • 打赏
  • 举报
回复
引用 16 楼 weixin_43962818 的回复:
引用 15 楼 wen_xian_sen 的回复:
引用 14 楼 weixin_43962818 的回复:
和我的情况一摸一样,太难了
还是用string吧。。。
我换esp8266 RTOS/3.3SDK就没问题,绝了
忘尘散人 2020-12-30
  • 打赏
  • 举报
回复
引用 14 楼 weixin_43962818 的回复:
和我的情况一摸一样,太难了
小火汁-,- 2020-12-30
  • 打赏
  • 举报
回复
小火汁-,- 2020-12-30
  • 打赏
  • 举报
回复
小火汁-,- 2020-12-30
  • 打赏
  • 举报
回复
我也是直接空的 数字那里
小火汁-,- 2020-12-30
  • 打赏
  • 举报
回复
引用 15 楼 wen_xian_sen 的回复:
引用 14 楼 weixin_43962818 的回复:
和我的情况一摸一样,太难了
还是用string吧。。。
忘尘散人 2020-12-21
  • 打赏
  • 举报
回复
引用 8 楼 zzw19931108 的回复:
不知可否帮我在你的VS软件下运行下程序看看结果是否一致是0.
你自己下载一个VS 就行了啊,写一个最简单的cjson打印看看就知道了,不用搞太多代码
忘尘散人 2020-12-21
  • 打赏
  • 举报
回复
你自己下载一个VS 就行了啊,写一个最简单的cjson打印看看就知道了,不用搞太多代码
zzw19931108 2020-12-17
  • 打赏
  • 举报
回复
不知可否帮我在你的VS软件下运行下程序看看结果是否一致是0.
忘尘散人 2020-12-16
  • 打赏
  • 举报
回复
引用 3 楼 zzw19931108 的回复:
你好问题解决了吗?我也有这个问题,只不过打印出来的是0
没解决,我换SDK了,新的SDK没问题,你的问题感觉和我的问题不一样,你的好歹有个值,我的直接是空的
zzw19931108 2020-12-16
  • 打赏
  • 举报
回复
你好问题解决了吗?我也有这个问题,只不过打印出来的是0
zzw19931108 2020-12-16
  • 打赏
  • 举报
回复
格式没问题 程序也应该没问题,其他几项创建的都正确。
忘尘散人 2020-12-16
  • 打赏
  • 举报
回复
引用 5 楼 zzw19931108 的回复:
我的值一直是0而且前面有空格
冒号与0之间有空格是正常的,我的也是这样,至于为什么是0,就要看看你的代码具体是情况了,空格应该是显示格式的问题,是正常的,你可以上百度搜json格式在线校验,看看数据格式对不对
zzw19931108 2020-12-16
  • 打赏
  • 举报
回复
我的值一直是0而且前面有空格
忘尘散人 2020-12-02
  • 打赏
  • 举报
回复
谢谢回复,虽然问题没有解决,我试过了,也是不行
worldy 2020-12-02
  • 打赏
  • 举报
回复
cJson库可能未实现cJSON_AddNumberToObject(源码里没有找到这个函数),你可以先 cJSON *cJSON_CreateNumber(double num) 数据对象,然后再 cJSON_AddItemToObjec

27,518

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧