CJSON数据的打包————创立一个键值对:键为"status_element",值为数组,数组中有大量对象的Cjson:
数据结构为 {key1:value1, key2:value2, ...} 的键值对结构:(key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型。)
cJSON_AddItemToObject(Packet_Head,"status_element",status_element);//向environ中添加一个数组对象info_element
for(i=0;i<Device_Num;i++)
{
device_data=cJSON_CreateObject();
cJSON_AddItemToArray(status_element,device_data);
cJSON_AddStringToObject(device_data,"device_id",_DVCE_data.device_id[i]);
cJSON_AddStringToObject(device_data,"position",_DVCE_data.position[i]);
cJSON_AddStringToObject(device_data,"status_num",_DVCE_data.status_num[i]);
}
解析一个键为“parameter_element”,键值为数组,数组中有大量对象的Cjson:
parameter_element = cJSON_GetObjectItem(Packet_Head,"parameter_element");
array_size = cJSON_GetArraySize(parameter_element);
for(i=0; i< array_size; i++)
{
item=cJSON_GetArrayItem(parameter_element,i);
device_id = cJSON_GetObjectItem(item,"device_id");
_RX_DEV_Data.device_id[i]=device_id->valuestring;
printf("(1) device_id[i]: %s\n",_RX_DEV_Data.device_id[i]);
position = cJSON_GetObjectItem(item,"position");
_RX_DEV_Data.position[i]=position->valuestring;
printf("(1) position[i]: %s\n",_RX_DEV_Data.position[i]);
status_num = cJSON_GetObjectItem(item,"status_num");
_RX_DEV_Data.status_num[i]=status_num->valuestring;
printf("(1) position[i]: %s\n",_RX_DEV_Data.status_num[i]);
}