cJson 创建 读取
发布时间:2020-12-16 19:53:49 所属栏目:百科 来源:网络整理
导读:http://blog.sina.com.cn/s/blog_5f28333901017kql.html 关于c语言操作json,cjson还挺好用,许多操作已经帮开发员封装好了,使用起来很方便。资源下载地址为: http://sourceforge.net/projects/cjson/ 在test.c文件中已经有很多例子,看了还不会使用可以直
http://blog.sina.com.cn/s/blog_5f28333901017kql.html 关于c语言操作json,cjson还挺好用,许多操作已经帮开发员封装好了,使用起来很方便。资源下载地址为:http://sourceforge.net/projects/cjson/ 在test.c文件中已经有很多例子,看了还不会使用可以直接看cjson.c文件,也不深奥,实际上就是个双链表,然后是对这个双链表进行增删改查记录下这两天运用到的 现有一个json文件如下: [ { "id": "c1", "option": "install",85); font-family:simsun; font-size:14.44444465637207px; line-height:21.222222594604492px">"fid": "1"},85); font-family:simsun; font-size:14.44444465637207px; line-height:21.222222594604492px">"id": "p1",85); font-family:simsun; font-size:14.44444465637207px; line-height:21.222222594604492px">"option": "notinstall",85); font-family:simsun; font-size:14.44444465637207px; line-height:21.222222594604492px">"fid": "2" } ] 1. 读取一个json文件,返回json结构链表,注意,这里返回值必须为cJSON*,具体原因看上一篇文章。另外关于json的介绍看, http://www.json.org/json-zh.html cJSON* GetJsonObject(char* fileName,cJSON* json) char* pContent; int tmp; FILE* fp = Open_File(fileName,"rb+"); if(!fp) return NULL; fseek(fp,SEEK_END); len=ftell(fp); if(0 == len) pContent = (char*) malloc (sizeof(char)*len); tmp = fread(pContent,1,len,fp); Close_File(fp); json=cJSON_Parse(pContent); if (!json) free(pContent); return json; 2 读取cJSON索引为index的结点某个key值对应的value,索引从0开始 BOOL GetValueString(cJSON* json,int id,char* name,char* param) cJSON* node; node = cJSON_GetArrayItem(json,id); if(!node) return FALSE; sprintf(param,"%s",cJSON_GetObjectItem(node,name)->valuestring); return TRUE; 比如读取id=1,name="name",得到param为"notinstall" 3 生成json文件 void Create_Pkgs(char* option1,char* option2) cJSON *root,*fld; char *out; FILE* fp = Open_File(Pkgs_File,"w+"); root=cJSON_CreateArray(); cJSON_AddItemToArray(root,fld=cJSON_CreateObject()); cJSON_AddStringToObject(fld,"id","c1"); fprintf(fp,out); free(out); out = NULL; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |