map转json字符串出现数组下标越界(map变成json字符串)

map转json字符串出现数组下标越界(map变成json字符串)p style margin left 0 text align justify span style color FF0000 1 使用 root cJSON Parse text span p 将字符串转成 json 格式

大家好,我是讯享网,很高兴认识大家。



 <p style="margin-left:0;text-align:justify;"><span style="color:#FF0000;">(1)使用root &#61; cJSON_Parse(text);</span></p> 

讯享网

//将字符串转成json格式,函数中申请了一块内存给root  所以在最后要释放root

cJSON_Delete(root ); //释放cJSON_Parse()分配出来的内存空间

(2)使用out = cJSON_Print(root);(含有cJSON_PrintUnformatted函数)


讯享网

//函数将json数据转成字符串,这个函数内申请了一段内存给out,所以使用完out后也要释放

由于out不是json指针的数据格式,使用cJSON_free(out);释放即可

(3)使用cJSON new_json_str = cJSON_Create(str);

//将一个字符串转成一个json对象,函数里面也涉及了内存分配,用完以后也要释放cJSON_Delete(new_json_str );

若cJSON new_json = cJSON_Create(str)创建后,通过cJSON_AddItemToObject( json, “test”, new_json );(或者cJSON_AddItemToArray),加入到数组或者object中,不需要单独释放new_json ,删除json时被添加的item(此处为申请的new_json)同时也会被删除。

注意:cJSON_Delete( ) ,cJSON_free ( ) 要区分使用,json格式的使用cJSON_Delete  ,指针格式使用cJSON_free,对应关系如下:               

申请内存: cJSON_Parse cJSON_Create  cJSON_Print
释放内存: cJSON_Delete  cJSON_Delete  cJSON_free
Referenced from:
cjson内存泄漏问题注意事项-CSDN博客

小讯
上一篇 2025-06-17 10:14
下一篇 2025-05-18 08:16

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/164447.html