cJson这个库开源 跨平台,用来解析和生成json数据很方便。项目地址:https://github.com/DaveGamble/cJSON
只需要把cJson.c,cJson.h拷进项目就ok.
下面直接上代码:
#include
#include
#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("年龄:%d\n",json_age->valueint);
}
json_name = cJSON_GetObjectItem(json,"name");
//如果类型是 字符串
if (json_name->type == cJSON_String)
{
printf("姓名:%s\n",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;
}运行结果:
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!