• cJSON使用笔记


    将cJSON用到STM32f103上

    cJSON内存管理使用的是标准库stdlib.h的malloc()free()realloc()动态内存管理函数,我STM32F103使用的是正点原子的malloc.c文件里的myfree() mymalloc()函数

    1、修改内容文件Cjson.c 

    cJSON_Delete(root);//出错
    cJSON_GetObjectItemCaseSensitive(testjson, "Mac");//申请内存失败

    修改内容:

    //被修改部分 
    //#define internal_malloc malloc
    //#define internal_free free
    //#define internal_realloc realloc
    
    #define internal_malloc mymalloc
    #define internal_free myfree
    #define internal_realloc myrealloc

    否则会内存出错。

    2、cjson数组问题:

      (1){"mac":"1234"}  valuestring 

      (2){"card":["1235","2345"]} ARRAY

      (3)注意是双引号 ,否则cJSON_Parse()解析返回的指针参数未null。

    3、

    cJSON *testjson;
    cJSON *testjsonmac;// MAC地址
    testjson=cJSON_CreateObject();
    testjson = cJSON_Parse(my_json_string) testjsonmac
    =cJSON_GetObjectItemCaseSensitive(testjson, "mac"); cJSON_Delete(testjson);
    cJSON_CreateObject()函数内部会动态申请一定字节的内存,所以最后解析完毕之后一定要释放内存cJSON_Delete(testjson),cJSON_Delete()函数内部会调用函数free();testjsonmac的地址时申请了内存的指针testjson指向的那块内存里的其中一个地址,不用为
    testjsonmac申请内存。
  • 相关阅读:
    concate string when group by
    Regular Expression
    Login failed for user
    SQL Performance Tools
    Web References
    ARTetris-AR版俄罗斯方块的源码解析
    ARKit_1
    链表
    线性表
    ORB-SLAM2的特征提取算法
  • 原文地址:https://www.cnblogs.com/fyp7077/p/8259837.html
Copyright © 2020-2023  润新知