zoukankan      html  css  js  c++  java
  • 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申请内存。
  • 相关阅读:
    ionic:安装
    ionic:ionic 教程
    ORM-Draper-DbConnectionManipulator:return new {}
    ionic:目录
    ionic:temple
    开发框架-手机应用:ionic
    CSS3:CSS3 文本效果
    CSS3:CSS3 渐变(Gradients)
    CARP-VRRP-HSRP
    java实现输入日期
  • 原文地址:https://www.cnblogs.com/fyp7077/p/8259837.html
Copyright © 2011-2022 走看看