C語言提供了一個枚舉(enum)類型,用于定義一組常量,這些常量的名字和值都必須在枚舉內明確列舉出來。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,常用于Web應用之間的數據傳輸。在C語言中,我們可以通過解析JSON字符串,將其轉換成枚舉類型的常量,方便地處理JSON數據。
// 定義一個JSON字符串 char* json_str = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }"; // 定義一個枚舉類型 enum json_key { NAME, AGE, CITY }; // 將JSON字符串轉換為json_key枚舉常量 enum json_key parse_json_key(char* key_str) { if (strcmp(key_str, "name") == 0) { return NAME; } else if (strcmp(key_str, "age") == 0) { return AGE; } else if (strcmp(key_str, "city") == 0) { return CITY; } } // 解析JSON字符串,獲取指定key的值 void parse_json_value(char* json_str, enum json_key key) { cJSON* root = cJSON_Parse(json_str); cJSON* value = NULL; switch (key) { case NAME: value = cJSON_GetObjectItem(root, "name"); printf("name: %s\n", value->valuestring); break; case AGE: value = cJSON_GetObjectItem(root, "age"); printf("age: %d\n", value->valueint); break; case CITY: value = cJSON_GetObjectItem(root, "city"); printf("city: %s\n", value->valuestring); break; default: printf("unknown key\n"); break; } } // 測試代碼 int main() { parse_json_value(json_str, parse_json_key("name")); parse_json_value(json_str, parse_json_key("age")); parse_json_value(json_str, parse_json_key("city")); return 0; }
在上述代碼中,我們先定義了一個JSON字符串,然后定義了一個枚舉類型,包含了三個枚舉常量,分別對應JSON字符串中的"name"、"age"和"city"。接著,我們通過parse_json_key函數將字符串類型的key轉換成枚舉常量,以便后續操作。最后,我們定義了一個parse_json_value函數,該函數接受一個JSON字符串和一個枚舉常量作為參數,通過cJSON庫的函數解析JSON字符串,并返回指定key對應的值。在測試代碼中,我們調用parse_json_value函數,打印出"name"、"age"和"city"這三個鍵對應的值。
上一篇python 循環迭代器
下一篇html實現按鈕代碼