forked from xuos/xiuos
				
			
		
			
				
	
	
		
			86 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
| #include "cJSON_Process.h"
 | |
| #include <lwip/sockets.h>
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| cJSON* cJSON_Data_Init(void)
 | |
| {
 | |
|   cJSON* cJSON_Root = NULL;    //json根节点
 | |
|   
 | |
|   
 | |
|   cJSON_Root = cJSON_CreateObject();  /*创建项目*/
 | |
|   if(NULL == cJSON_Root)
 | |
|   {
 | |
|       return NULL;
 | |
|   }
 | |
|   cJSON_AddStringToObject(cJSON_Root, NAME, DEFAULT_NAME);  /*添加元素  键值对*/
 | |
|   cJSON_AddNumberToObject(cJSON_Root, TEMP_NUM, DEFAULT_TEMP_NUM);
 | |
|   cJSON_AddNumberToObject(cJSON_Root, HUM_NUM, DEFAULT_HUM_NUM);
 | |
|   
 | |
|   char* p = cJSON_Print(cJSON_Root);  /*p 指向的字符串是json格式的*/
 | |
| 
 | |
|   p = NULL;
 | |
|   
 | |
|   return cJSON_Root;
 | |
|   
 | |
| }
 | |
| uint8_t cJSON_Update(const cJSON * const object,const char * const string,void *d)
 | |
| {
 | |
|   cJSON* node = NULL;    //json根节点
 | |
|   node = cJSON_GetObjectItem(object,string);
 | |
|   if(node == NULL)
 | |
|     return 0;
 | |
|   if(cJSON_IsBool(node))
 | |
|   {
 | |
|     int *b = (int*)d;
 | |
| 
 | |
|     cJSON_GetObjectItem(object,string)->type = *b ? cJSON_True : cJSON_False;
 | |
| 
 | |
|     return 1;
 | |
|   }
 | |
|   else if(cJSON_IsString(node))
 | |
|   {
 | |
|     cJSON_GetObjectItem(object,string)->valuestring = (char*)d;
 | |
| 
 | |
|     return 1;
 | |
|   }
 | |
|   else if(cJSON_IsNumber(node))
 | |
|   {
 | |
|     double *num = (double*)d;
 | |
| 
 | |
|     cJSON_GetObjectItem(object,string)->valuedouble = (double)*num;
 | |
| 
 | |
|     return 1;
 | |
|   }
 | |
|   else
 | |
|     return 1;
 | |
| }
 | |
| 
 | |
| void Proscess(void* data)
 | |
| {
 | |
|   
 | |
|   cJSON *root,*json_name,*json_temp_num,*json_hum_num;
 | |
|   root = cJSON_Parse((char*)data); //解析成json形式
 | |
| 
 | |
|   json_name = cJSON_GetObjectItem( root , NAME);   //获取键值内容
 | |
|   json_temp_num = cJSON_GetObjectItem( root , TEMP_NUM );
 | |
|   json_hum_num = cJSON_GetObjectItem( root , HUM_NUM );
 | |
| 
 | |
|   lw_print("name:%s\n temp_num:%f\n hum_num:%f\n",
 | |
|               json_name->valuestring,
 | |
|               json_temp_num->valuedouble,
 | |
|               json_hum_num->valuedouble);
 | |
| 
 | |
|   cJSON_Delete(root); //释放内存 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |