将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申请内存。

最新文章

  1. wget
  2. oracle 用户创建这个挺靠谱
  3. Effective Java学习笔记
  4. poj2318
  5. RouterOS DNS劫持 -- A记录
  6. javascript优化--07模式(对象)02
  7. Children of the Candy Corn 分类: POJ 2015-07-14 08:19 7人阅读 评论(0) 收藏
  8. 操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null
  9. Qt5 QTableWidget设置列表自动适应列宽
  10. Codeforces Round #104 (Div. 1)
  11. spring框架详解
  12. jQuery Ajax: $.post请求示例
  13. [BZOJ1001] [Beijing2006] 狼抓兔子 (最短路)
  14. Maven-04: 三套生命周期
  15. EXT 设置编辑框为只读
  16. Windows10 永久激活查询/激活时间查询/激活查询命令/激活码查询
  17. [UE4]插值interp
  18. __init__和__new__的异同
  19. TensorRT层和每个层支持的精度模式
  20. Redis进阶实践之七Redis和Lua初步整合使用(转载 7)

热门文章

  1. python添加清屏功能
  2. ARM指令集的最新版本包括针对JavaScript的优化
  3. Github使用进阶
  4. POJ-1459-Pwoer Network(最大流Dinic, 神仙输入)
  5. Vue刷新token,判断token是否过期
  6. poj 3352 : Road Construction 【ebcc】
  7. 【hackerrank】Weather Observation Station 18
  8. CSS3文本阴影、边框阴影
  9. 13 Spring Boot Shiro使用JS-CSS-IMG
  10. tarjan相关模板