cJSON是一個開源的JSON處理庫,可以支持JSON的解析和構建。在使用cJSON解析JSON時,經常需要判斷JSON對象中是否存在某個key。下面簡要說明如何使用cJSON來判斷存在key的方法。
//假設有如下JSON字符串 const char* jsonstr = "{\"name\":\"Tom\",\"age\":18}"; //使用cJSON解析該JSON字符串 cJSON* root = cJSON_Parse(jsonstr); //判斷是否存在name這個key cJSON* name = cJSON_GetObjectItem(root, "name"); if (name != NULL) { printf("存在name這個key,值為:%s\n", name->valuestring); } else { printf("不存在name這個key\n"); } //判斷是否存在address這個key cJSON* address = cJSON_GetObjectItem(root, "address"); if (address != NULL) { printf("存在address這個key,值為:%s\n", address->valuestring); } else { printf("不存在address這個key\n"); }
上面代碼中,我們首先使用cJSON解析了一個JSON字符串,并將其作為根節點root。然后,我們使用cJSON_GetObjectItem函數獲取指定key的值,并判斷該值是否為NULL。如果返回的值不為NULL,則說明該key存在,否則則不存在。
注意,當使用cJSON_GetObjectItem函數獲取對象的值時,需要保證root是一個JSON對象。如果不是,則該函數返回NULL。此外,在使用cJSON_GetObjectItem函數獲取數組的值時,需要指定數組的下標。
上一篇cjson添加json