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)
|
||
{
|
||
lw_print("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>JSON<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||
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); //释放内存
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|