在進行C語言開發時,我們經常會遇到將JSON數組轉換為List的需求。在如今互聯網時代,JSON已經成為了前后端之間最為常用的數據交互格式之一。那么,我們該如何實現C中JSON數組轉換為List呢?
/* 首先我們需要引入相應的頭文件 */ #include#include #include #include /* 然后我們定義一個結構體來存儲List的元素 */ typedef struct ListElement{ char* data; struct ListElement* next; }ListElement; /* 接著,我們定義一個函數來將JSON數組轉換為List */ ListElement* jsonArrayToList(cJSON* json_array){ ListElement* head = NULL; ListElement* tail = NULL; cJSON* item = NULL; int array_size = cJSON_GetArraySize(json_array); for(int i = 0; i< array_size; ++i){ item = cJSON_GetArrayItem(json_array, i); if(item != NULL && item->type == cJSON_String){ ListElement* element = (ListElement*)malloc(sizeof(ListElement)); element->data = strdup(item->valuestring); element->next = NULL; if(head == NULL){ head = tail = element; } else{ tail->next = element; tail = element; } } } return head; }
上述代碼中,我們首先引入了相應的頭文件,然后定義了一個結構體來存儲List的元素。接下來,我們定義了一個函數jsonArrayToList()
來將JSON數組轉換為List。該函數為我們提供了一個操作JSON數組的方法
因此,我們只需要調用該函數即可將JSON數組轉換為List,如下所示:
int main(){ /* 定義JSON字符串 */ char* json_string = "{\"array\":[\"Element 1\",\"Element 2\",\"Element 3\"]}"; /* 解析JSON字符串 */ cJSON* root = cJSON_Parse(json_string); /* 獲取JSON數組 */ cJSON* arr = cJSON_GetObjectItem(root,"array"); /* 將JSON數組轉換為List */ ListElement* list_head = jsonArrayToList(arr); /* 遍歷List */ ListElement* p = list_head; while(p != NULL){ printf("%s\n",p->data); p = p->next; } return 0; }
上述代碼中,我們首先定義了一個JSON字符串,然后通過
總之,將C語言中的JSON數組轉換為List需要借助開源庫cJSON,并通過遍歷數組逐一將其元素添加到List中實現。如果您有這方面的需求,可以參考以上代碼來實現。