C JSON是一種輕量級的數據交換格式,在很多開源項目中都廣泛使用。如果我們需要將C JSON轉換成集合,可以通過以下步驟實現:
// 引用C JSON庫 #include <stdio.h> #include <cjson/cJSON.h> int main() { // 將JSON字符串轉換成C JSON對象 char* json_str = "{ \"name\": \"張三\", \"age\": 18, \"hobby\": [\"游泳\", \"旅行\"] }"; cJSON* json = cJSON_Parse(json_str); // 遍歷JSON對象中的鍵值對,并將其加入集合 cJSON* item = NULL; cJSON_ArrayForEach(item, json) { char* key = item->string; cJSON* value = item->child; // 根據鍵類型轉換成相應的數據類型 if (cJSON_IsString(value)) { printf("%s: %s\n", key, cJSON_GetStringValue(value)); } else if (cJSON_IsNumber(value)) { printf("%s: %d\n", key, cJSON_GetNumberValue(value)); } else if (cJSON_IsArray(value)) { printf("%s: (\n", key); cJSON* child = NULL; cJSON_ArrayForEach(child, value) { printf("%s\n", child->valuestring); } printf(")\n"); } } // 釋放C JSON對象內存 cJSON_Delete(json); return 0; }
在上述代碼中,我們首先使用cJSON_Parse()函數將JSON字符串轉換為C JSON對象,然后遍歷對象中的鍵值對,在遍歷過程中通過cJSON_GetStringValue()和cJSON_GetNumberValue()等函數將JSON值轉換成C語言數據類型,并將其加入集合中。
需要注意的是,在使用C JSON庫完成工作后,我們需要手動調用cJSON_Delete()函數釋放對象占用的內存,避免內存泄漏。
上一篇html快速縮進代碼