加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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;
}
运行结果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读