cjson打包数组

1 篇文章 0 订阅
 cJSON *timerJsonArry=cJSON_CreateArray();

先创建一组数组,

            cJSON *ArrayItem = cJSON_CreateObject();

            cJSON_AddNumberToObject(ArrayItem, "enable",   g_system_data.device_state.mqtt_timer_array.enable);   
            cJSON_AddNumberToObject(ArrayItem, "type",   g_system_data.device_state.mqtt_timer_array.mqtt_timer[i].type); 
            cJSON_AddNumberToObject(ArrayItem, "hour",   g_system_data.device_state.mqtt_timer_array.mqtt_timer[i].openHour); 
            cJSON_AddNumberToObject(ArrayItem, "minute",   g_system_data.device_state.mqtt_timer_array.mqtt_timer[i].openMin);    
            cJSON_AddNumberToObject(ArrayItem, "repeat",   g_system_data.device_state.mqtt_timer_array.mqtt_timer[i].repeat); 

    	    cJSON_AddItemToArray(timerJsonArry,ArrayItem);

            cJSON_AddItemToObject(timerJSObject, "timer", timerJsonArry);


再创建一个对象,再从对象中添加数据,最后再把对象添加到数组中,然后再打包进“timer”字段

            iot_json = cJSON_PrintUnformatted(IOTJSObject);  
            sprintf(package_msg, "%s", iot_json);
            //Ihoment_printf(IHOMENT_ALWAYS, "pack:%s\n", package_msg);
            printf( "mqtt json pack:%s\n", package_msg);
            vPortFree(iot_json);
            cJSON_Delete(IOTJSObject);

然后把打包的字段凭借起来转换为字符串形式,打印出来,最后释放内存

打包的数组大概是这样

    "timer":[
      {
        "enable":0/1,
        "type":0/1, 
        "hour":0, 
        "minute":23,
        "repeat":1  
      }
    ],

如果是多个数组,直接在第一步代码中循环打包数组就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值