zl程序教程

您现在的位置是:首页 >  工具

当前栏目

cJSON使用笔记

笔记 使用
2023-09-14 09:06:41 时间
  • cJSON下载

链接:https://pan.baidu.com/s/1CJShZevYLWDs4Q61P8PROA 
提取码:nzr8 
 

  • 创建简单的JSON数据

{
  “hello":"world"
}
    cJSON *root;
	char *out;
   	root=cJSON_CreateObject();
	if(root != NULL)
	{
		cJSON_AddStringToObject(root,"hello","world");
   		out=cJSON_Print(root);
		printf("%s\n",out);
		cJSON_Delete(root);
		if(out != NULL)
			free(out);
    }
  • 创建JSON数组

{
    "Data:[1,2,3,4,5,6,7,8,9,10]
}
    cJSON *root;
	cJSON *obj;
	char *out;
	int array[] = {1,2,3,4,5,6,7,8,9,10};
	root = cJSON_CreateObject();
	if(root != NULL)
	{
		
		obj = cJSON_CreateIntArray(array,10);
	
		cJSON_AddItemToObject(root,"Data",obj);
   		out=cJSON_Print(root);
		printf("%s\n",out);
		cJSON_Delete(root);
		if(out != NULL)
			free(out);
    }
  • 创建JSON字符串数组

{
    Data:["Mon","Tue","Wed","Thu","Fri","Sta","Sun"]
}
    cJSON *root;
	cJSON *obj;
	char *out;
	char *array[] = {"Mon","Tue","Wed","Thu","Fri","Sta","Sun"};
	root = cJSON_CreateObject();
	if(root != NULL)
	{
		
		obj = cJSON_CreateStringArray(array,7);
	
		cJSON_AddItemToObject(root,"Data",obj);
   		out=cJSON_Print(root);
		printf("%s\n",out);
		cJSON_Delete(root);
		if(out != NULL)
			free(out);
    }
  • 解析简单的JSON数据

{
  “hello":"world"
}
   char msg[] = "{\"hello\":\"world\"}";

   cJSON           *json;
   cJSON *item;
   json=cJSON_Parse(msg); //获取整个大的句柄
   item = cJSON_GetObjectItem(json,"hello"); //获取这个对象成员
   printf("hello:%s\n",item->valuestring);  
   if(json != NULL)
     cJSON_Delete(json);
  • 解析JSON数组

{
    "Data:[1,2,3,4,5,6,7,8,9,10]
}
	char msg[] = "{\"Data\":[1,2,3,4,5,6,7,8,9,10]}";

    cJSON           *json;
	cJSON           *array;
    cJSON *item;
	int length;
	int i;
   json=cJSON_Parse(msg); //获取整个大的句柄
   array = cJSON_GetObjectItem(json,"Data");
  // item = cJSON_GetArrayItem(json,"Data"); //获取这个对象成员
   length = cJSON_GetArraySize(array);
   printf("length %d\n",length);
   for(i=0; i<length;i++)
   {
	  item = cJSON_GetArrayItem(array,i);
	  printf("Data[%d]:%d\n",i,item->valueint);
   }
   if(json != NULL)
	  cJSON_Delete(json);
  • 解析JSON字符串数组

{
    Data:["Mon","Tue","Wed","Thu","Fri","Sta","Sun"]
}
    char msg[] = "{\"Data\":[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sta\",\"Sun\"]}";

    cJSON           *json;
	cJSON           *array;
    cJSON *item;
	int length;
	int i;
   json=cJSON_Parse(msg); //获取整个大的句柄
   array = cJSON_GetObjectItem(json,"Data");
  // item = cJSON_GetArrayItem(json,"Data"); //获取这个对象成员
   length = cJSON_GetArraySize(array);
   printf("length %d\n",length);
   for(i=0; i<length;i++)
   {
	  item = cJSON_GetArrayItem(array,i);
	  printf("Data[%d]:%s\n",i,item->valuestring);
   }
   if(json != NULL)
	  cJSON_Delete(json);