C語言中的返回JSON NULL出現(xiàn)的情況有很多種,例如:
int main() {
char* json_str = "{\"name\": \"Tom\", \"age\": 18}";
cJSON* json = cJSON_Parse(json_str);
if (json == NULL) {
printf("Error: parse failed!\n");
return -1;
}
else {
cJSON* value = cJSON_GetObjectItem(json, "gender");
if (value == NULL) {
printf("Error: key does not exist!\n");
cJSON_Delete(json);
return -1;
}
else if (!cJSON_IsNumber(value)) {
printf("Error: key is not a number!\n");
cJSON_Delete(json);
return -1;
}
int gender = cJSON_GetNumberValue(value);
printf("Gender: %d\n", gender);
cJSON_Delete(json);
}
return 0;
}
上述代碼中,如果JSON解析失敗,會(huì)返回NULL,此時(shí)需要返回-1。如果獲取某個(gè)key的value失敗,也需要返回-1。同時(shí)需要注意,使用完cJSON后需要清除它的內(nèi)存。
C語言返回JSON NULL還有其他的情況,需要根據(jù)具體的代碼和需求進(jìn)行判斷和處理。