F407+ESP8266+MQTT+AliIoT(六)——cJSON移植

F407+ESP8266+MQTT+AliIoT(六)——cJSON移植

簡介

在F407接收到阿里雲下發的Publish Message之後,需要解碼,解碼要用到cJSON.c和cJSON.h文件,這兩個文件可以在github上下載。在這裏只給出了一個示例,具體怎麼用看自己的。

如果不行可以修改文件startup_stm32f407xx.s,增加空間
Stack_Size EQU 0x00000400
Heap_Size EQU 0x00000200
修改爲
Stack_Size EQU 0x00001000
Heap_Size EQU 0x00001000

相關程序源碼

CSJON數據解包示例代碼

    const char *line = "{\"method\":\"thing.service.property.set\",\"id\":\"1047683414\", \
        \"params\":{\"temperature\":23,\"humidity\":23},\"version\":\"1.0.0\"}";
    cJSON *json;
    printf(line);
    json = cJSON_Parse(line);
    if(json ==NULL)
        printf("json fmt error:%s\n.", cJSON_GetErrorPtr());
    else {
        cJSON *obj_id = cJSON_GetObjectItem(json, "id");
        cJSON *obj_params = cJSON_GetObjectItem(json, "params");
        cJSON *obj_temp = cJSON_GetObjectItem(obj_params, "temperature");
        cJSON *obj_humi = cJSON_GetObjectItem(obj_params, "humidity");
        
        printf("\r\n");
        printf("temperature: %.1f\r\n", obj_temp->valuedouble);
        printf("humidity: %.1f\r\n", obj_humi->valuedouble);
        cJSON_Delete(json);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章