JSON是一種輕量級的數(shù)據(jù)交換格式,被廣泛應用于前后端數(shù)據(jù)傳輸、存儲等場景。在C語言中,我們可以通過各種JSON解析庫來解析JSON字符串,其中最常用的是cJSON。
對于一個JSON對象,我們可以通過遍歷其屬性值來獲取其中的數(shù)據(jù)。cJSON提供了多種遍歷JSON對象的方法,下面我們簡單介紹其中的兩種。
// 示例JSON字符串 const char *json_str = "{\"name\":\"Lucy\",\"age\":20,\"gender\":\"female\"}"; // 解析JSON字符串 cJSON *root = cJSON_Parse(json_str); // 方法一:循環(huán)遍歷 cJSON *item = NULL; for (item = root->child; item != NULL; item = item->next) { printf("%s: %s\n", item->string, cJSON_Print(item)); } // 方法二:使用cJSON_GetObjectItemCaseSensitive函數(shù) cJSON *name = cJSON_GetObjectItemCaseSensitive(root, "name"); cJSON *age = cJSON_GetObjectItemCaseSensitive(root, "age"); cJSON *gender = cJSON_GetObjectItemCaseSensitive(root, "gender"); printf("name: %s\n", cJSON_Print(name)); printf("age: %d\n", cJSON_GetNumberValue(age)); printf("gender: %s\n", cJSON_Print(gender));
在第一種方法中,我們通過一個指針變量item不斷向后遍歷JSON對象的子元素,并通過item->string和cJSON_Print函數(shù)獲取屬性名和屬性值。在第二種方法中,我們通過cJSON_GetObjectItemCaseSensitive函數(shù)直接獲取指定屬性名的屬性值。
無論哪種方法,我們只要掌握了cJSON的基礎用法,就能輕松地遍歷JSON對象的屬性值,輕松實現(xiàn)各種數(shù)據(jù)處理功能。
下一篇vue 里邊寫方法