cJSON的部分用法

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)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值