在使用C語言處理JSON文件時(shí),有時(shí)候需要?jiǎng)h除某個(gè)鍵值對(duì)或整個(gè)JSON對(duì)象。下面介紹一種基于cJSON庫的JSON刪除方法。
#include "cJSON.h" // 刪除JSON鍵值對(duì) int json_delete(cJSON* json, const char* key) { if (!json || !key) { return -1; } cJSON* item = cJSON_DetachItemViaPointer(json, cJSON_GetObjectItem(json, key)); cJSON_Delete(item); return 0; } // 刪除整個(gè)JSON對(duì)象 void json_destroy(cJSON* json) { if (json) { cJSON_Delete(json); } }
其中
使用方法如下:
// 創(chuàng)建JSON對(duì)象 cJSON* json = cJSON_Parse("{\"a\": 1, \"b\": \"hello\", \"c\": [1, 2, 3]}"); // 刪除鍵值對(duì) json_delete(json, "a"); // 刪除JSON對(duì)象 json_destroy(json);
以上代碼將會(huì)刪除JSON對(duì)象中的鍵值對(duì)"a": 1,并最終釋放整個(gè)JSON對(duì)象的內(nèi)存。