cJson的用法(一) -C语言解析/生成 json数据
发布时间:2020-12-16 19:44:26 所属栏目:百科 来源:网络整理
导读:cJson这个库开源 跨平台,用来解析和生成json数据很方便。项目地址:https://github.com/DaveGamble/cJSON 只需要把cJson.c,cJson.h拷进项目就ok. 下面直接上代码: #includestdio.h#includestdlib.h#include"cJSON.h"int main(){/************* json的解析*
cJson这个库开源 跨平台,用来解析和生成json数据很方便。项目地址:https://github.com/DaveGamble/cJSON 只需要把cJson.c,cJson.h拷进项目就ok.
下面直接上代码: #include<stdio.h> #include<stdlib.h> #include"cJSON.h" int main() { /************* json的解析 ***************************/ char data[] = "{"name":"邱于涵","age":20}"; //json是json对象指针,json_name是 name对象的指针,json_age是age对象的指针 cJSON *json=0,*json_name=0,*json_age=0; //解析数据包 json = cJSON_Parse(data); //如果解析失败 if (!json) { printf("Error Before:",cJSON_GetErrorPtr()); } else { json_age = cJSON_GetObjectItem(json,"age"); //如果类型是 数字 if(json_age->type==cJSON_Number) { printf("年龄:%dn",json_age->valueint); } json_name = cJSON_GetObjectItem(json,"name"); //如果类型是 字符串 if (json_name->type == cJSON_String) { printf("姓名:%sn",json_name->valuestring); } //释放内存 cJSON_Delete(json); } /************************** json的生成 **********************************/ cJSON * jsonroot=0; char * jsonout=0; //创建根节点对象 jsonroot = cJSON_CreateObject(); //向根节点加入数字对象 cJSON_AddNumberToObject(jsonroot,"age",19); //向根节点加入字符串对象 cJSON_AddStringToObject(jsonroot,"name","山楂"); //解析成字符串 jsonout=cJSON_Print(jsonroot); printf("%s",jsonout); //释放json对象的空间 cJSON_Delete(jsonroot); //释放jsonout的空间 free(jsonout); system("pause"); return 0; }运行结果:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |