• 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申请内存。
  • 相关阅读:
    Informatica_(6)性能调优
    Informatica_(5)高级应用
    Informatica_(4)工作流
    Informatica_(3)组件
    Informatica_(2)第一个例子
    Informatica_(1)安装
    Linux_(4)Shell编程(下)
    Linux_(3)Shell编程(上)
    Linux_(2)基本命令(下)
    B
  • 原文地址:https://www.cnblogs.com/fyp7077/p/8259837.html
Copyright © 2020-2023  润新知