C語言提供了一種叫做list的數據結構,它可以很方便地管理動態內存。但有時我們需要將這些數據轉換為JSON字符串數組,以便在網絡傳輸或數據存儲中使用。本文將介紹如何將C list轉換為JSON字符串數組。
// 引入json-c庫 #include <json-c/json.h> // 將C list轉換為JSON字符串數組 char** list_to_json_array(struct list* lst) { int len = list_length(lst); char** result = malloc((len + 1) * sizeof(char*)); for (int i = 0; i < len; i++) { // 獲取list中的值 void* item = list_get(lst, i); // 轉換為json對象 json_object* obj = json_object_new_int(*(int*)item); // 轉換為json字符串 const char* str = json_object_to_json_string(obj); // 復制到結果數組中 result[i] = strdup(str); json_object_put(obj); } result[len] = NULL; return result; }
以上代碼將C list中的所有值遍歷,將其轉換為JSON對象,并將其轉換為JSON字符串。然后將所有字符串的指針存儲在一個字符指針數組中,以便可以在需要時訪問它們。
使用時,我們只需調用list_to_json_array()函數,將C list傳遞給它,就可以得到JSON字符串數組。如果我們希望使用這些字符串,我們只需遍歷數組并使用它們即可:
char** json_array = list_to_json_array(my_list); for (int i = 0; json_array[i] != NULL; i++) { // 通過json-c庫解析JSON字符串 json_object* obj = json_tokener_parse(json_array[i]); // 處理json對象 // ... json_object_put(obj); free(json_array[i]); } free(json_array);
以上代碼展示了如何使用json-c庫解析JSON字符串,并在使用后釋放它們。
總之,將C list轉換為JSON字符串數組非常簡單,只需遍歷列表并將每個值轉換為JSON字符串即可。然后將所有字符串的指針存儲在字符指針數組中,以便我們可以方便地使用它們。