使用cJSON库更新json文件
来源:互联网 发布:淘宝上4好看卖包的店铺 编辑:程序博客网 时间:2024/06/06 11:48
测试程序的目的是更新已有的json文件。
下面是测试程序的代码
#include "smartlight.h"#include "cJSON.h"cJSON *dofile(char *filename){FILE *f;long len;char *data;cJSON *json,*ret;f=fopen(filename,"rb");fseek(f,0,SEEK_END);len=ftell(f);fseek(f,0,SEEK_SET);data=(char*)malloc(len+1);fread(data,1,len,f);data[len]='\0';json=cJSON_Parse(data);if (!json) {printf("Error before: [%s]\n",cJSON_GetErrorPtr());ret = NULL;goto EXIT;}else{//printf("%s\n",data);ret = json;}EXIT:free(data);fclose(f);return ret;}int write_file(char *filename,char *out){FILE *fp = NULL;fp = fopen(filename,"a+");if(fp == NULL){fprintf(stderr,"open file failed\n");exit(-1);}fprintf(fp,"%s",out);if(fp != NULL)fclose(fp);}int main(){cJSON *root,*basicpara;char *out;root = dofile("basicparameter.cfg");out = cJSON_Print(root);printf("before modify:%s\n",out);free(out);basicpara = cJSON_GetObjectItem(root,"basicparameter");cJSON_GetObjectItem(basicpara,"mode")->valueint = 0;//cJSON_GetObjectItem(basicpara,"mode")->valuedouble = 0;cJSON_GetObjectItem(basicpara,"TimeoutPoweron")->valueint = 10;//cJSON_GetObjectItem(basicpara,"TimeoutPoweron")->valuedouble = 10;out = cJSON_Print(root);printf("after modify:%s\n",out);free(out);//write_file("basicparameter.cfg",out);cJSON_Delete(root);return 0;}
刚开始只修改了valueint的值,结果显示修改前后的结果一样。
cJSON_GetObjectItem(basicpara,"mode")->valueint = 0;
然后修改valuedouble的值,才能真能修改json文件。
如果只调用
cJSON_GetObjectItem(basicpara,"mode")->valuedouble = 0;也只是修改了valuedouble的值。
所以如果想要修改valueint的值必须同时调用
cJSON_GetObjectItem(basicpara,"mode")->valueint = 0;cJSON_GetObjectItem(basicpara,"mode")->valuedouble = 0;引用链接:https://sourceforge.net/p/cjson/discussion/998970/thread/5c13b93f/
0 0
- 使用cJSON库更新json文件
- 使用cjson库解析json格式
- 使用cJSON库打包json数据及解析json数据
- 使用cJSON解析JSON字符串
- 使用cJSON解析JSON字符串
- 使用cJSON创建JSON字符串
- 使用cJSON解析JSON字符串
- 使用cJSON创建JSON字符串
- 使用cJSON解析JSON字符串
- 使用cJSON解析JSON字符串
- 使用cJSON创建JSON字符串
- 使用cJSON解析JSON字符串
- JSON学习-使用cJSON解析
- C语言使用JSON,cJSON库的使用
- cJson库的使用
- cJSON库使用教程
- cJSON库使用教程
- cJson库的使用
- HDU 5642 数位DP
- eclipse中文乱码
- 群晖系统挂载NTFS硬盘
- 工作流案列(一)
- CentOS 安装nexus并设置为系统服务
- 使用cJSON库更新json文件
- windows server 2008 R2服务器无法通过ShellClass获取mp3音乐时长
- (4.5.1.2)Open an existing Android Studio project和Import Non-Android Studio project图解
- 常用的正则表达式
- app性能测试
- jQuery-serialize()输出序列化form表单值的方法
- AngularJS UI 扩展 AngularUI
- TCPDUMP抓取android手机流量包+wireshark分析
- android ImageView实现上面圆角下面直角(自定义view实现)