cJSON* createJson(string alarm_code)
{
cJSON* root = cJSON_CreateObject();
cJSON* item1=cJSON_CreateObject();
cJSON* item2=cJSON_CreateObject();
cJSON* next=cJSON_CreateObject();
cJSON_AddItemToObject(root,"head",item1);
cJSON_AddItemToObject(item1,"method",cJSON_CreateString("report"));
cJSON_AddItemToObject(item1,"device_type",cJSON_CreateString(""));
cJSON_AddItemToObject(item1,"msg_type",cJSON_CreateString("device_alarm"));
cJSON_AddItemToObject(item1,"gw_id",cJSON_CreateString(IOT_ID));
cJSON_AddItemToObject(item1,"sensor_id",cJSON_CreateString(""));
struct timeval tv;
gettimeofday(&tv,NULL);
cJSON_AddItemToObject(item1,"msg_id",cJSON_CreateString(to_string(tv.tv_sec*1000+tv.tv_usec/1000).c_str()));
cJSON_AddItemToObject(item1,"msg_time",cJSON_CreateNumber(tv.tv_sec*1000+tv.tv_usec/1000));
cJSON_AddItemToObject(item1,"version",cJSON_CreateNumber(1));
cJSON_AddItemToObject(root,"body",item2);
cJSON_AddItemToObject(item2,"auto",next);
cJSON_AddItemToObject(next,"alarm_level",cJSON_CreateNumber(0));
cJSON_AddItemToObject(next,"alarm_state",cJSON_CreateNumber(1));
cJSON_AddItemToObject(next,"alarm_type",cJSON_CreateNumber(6));
cJSON_AddItemToObject(next,"alarm_code",cJSON_CreateString(alarm_code.c_str()));
cJSON_AddItemToObject(next,"alarm_para",cJSON_CreateString(""));
cJSON_AddItemToObject(next,"create_time",cJSON_CreateNumber(tv.tv_sec*1000+tv.tv_usec/1000));
cJSON_AddItemToObject(next,"clear_time",cJSON_CreateNumber(0));
return root;
}
对应的json串格式:
{
"head":
{
"method": "report",
"device_type":"",
"msg_type": "device_alarm",
"gw_id": "1054197327276675072",
"sensor_id": "",
"msg_id": 256,
"msg_time": 1539766416842,
"version": 1
},
"body":
{
"auto":{
"alarm_level": 1,
"alarm_state": 0,
"alarm_type": 1,
"alarm_scene": 1001,
"alarm_code": "890001",
"alarm_para": "1,2,3,4",
"create_time": 1539766416842,
"clear_time": 1539766416842,
"create_photo": "p_1001_1233443",
"clear_photo": "p_1001_1233468",
"area_resp_state": 1,
"area_responsible":"32001" ,
"area_resp_time": 1302589789,
"area_resp_msg": "确认告警解除",
"workshop_resp_state": 1,
"workshop_responsible":"22001" ,
"workshop_resp_time": 1539766416842,
"workshop_resp_msg": "确认告警解除",
"section_resp_state": 1,
"section_responsible":"12001" ,
"section_resp_time": 1539766416842,
"section_resp_msg": "确认告警解除"
}
}
}
最后csjon与char*的转化:
char* str=cJSON_Print(CSJON* myjson)