色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 枚舉json

傅智翔2年前8瀏覽0評論

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"這三個鍵對應的值。