C語(yǔ)言中使用JSON作為數(shù)據(jù)格式的應(yīng)用越來(lái)越廣泛。在解析JSON數(shù)據(jù)時(shí),一個(gè)常見的問題是如何判斷一個(gè)key是否存在。下面我們會(huì)介紹兩種方法。
/** * 方法一:使用 cJSON_GetObjectItem 函數(shù) * 如果返回的指針不為NULL,則代表key存在 */ cJSON *jsonObj = cJSON_Parse(jsonStr); cJSON *existKey = cJSON_GetObjectItem(jsonObj, "exist_key"); if(existKey != NULL) { // key存在 } /** * 方法二:使用 cJSON_HasObjectItem 函數(shù) * 如果返回值為 cJSON_True,則代表key存在 */ cJSON_HasObjectItem(jsonObj, "exist_key"); if(existKey->type == cJSON_True) { // key存在 }
以上兩種方法都可以判斷一個(gè)key是否存在,具體使用哪種方法可以根據(jù)自己的實(shí)際情況來(lái)考慮。當(dāng)然,如果是需要頻繁判斷鍵是否存在,方法二會(huì)更為高效一些。