在C語言中使用JSON數據格式,可能用到第三方庫,如cJSON等。以下是實現取JSON數據中某個鍵值對的方法:
#include#include #include "cJSON.h" int main() { char* json_str = "{\"name\":\"Alice\",\"age\":20}"; cJSON* json = cJSON_Parse(json_str); if (json == NULL) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); } cJSON* value = cJSON_GetObjectItemCaseSensitive(json, "name"); if (cJSON_IsString(value) && (value->valuestring != NULL)) { printf("name: %s\n", value->valuestring); } cJSON_Delete(json); return 0; }
以上代碼首先將一個JSON字符串解析為cJSON對象,然后使用cJSON_GetObjectItemCaseSensitive函數從中獲取鍵值對。注意,在函數返回一個cJSON對象之前,需要檢查該對象的類型和指向。最后,用cJSON_Delete函數銷毀cJSON對象。
另外,可以使用cJSON_GetObjectItem函數替換cJSON_GetObjectItemCaseSensitive函數,不過在鍵名不區分大小寫時,推薦使用前者。同時也應避免使用cJSON_ParseWithOpts(cJSON_ParseEx)函數,因為這樣的方法會增加代碼的復雜度并且導致不必要的性能損耗。