在C語言編程中,我們經常需要將JSON字符串轉換為列表對象。JSON字符串由花括號、中括號和逗號等符號組成,表示一個數據結構。而列表對象則是C語言的一種數據結構,可以方便地存儲和操作數據。下面介紹如何使用C語言代碼將JSON字符串轉換為列表對象。
// 包含頭文件 #include <stdio.h> #include <stdlib.h> #include <string.h> // 定義列表結構體 typedef struct list_t { char *value; // 列表值 struct list_t *next; // 下一個節點 } list; // JSON字符串轉列表對象函數 list* json_to_list(char *jsonStr) { list *head = NULL; // 頭節點 list *tail = NULL; // 尾節點 char *ch = jsonStr; // 指向字符串首字符 while (*ch != '\0') { if (*ch == '[') // 列表開始 { ch++; continue; } if (*ch == '{') // 對象開始 { ch++; while (*ch != '}') // 對象結束 { if (*ch == '"') // 值開始 { ch++; char *value = (char*)malloc(sizeof(char)*100); // 分配空間 int i=0; while (*ch != '"') // 值結束 { value[i] = *ch; ch++; i++; } value[i] = '\0'; // 字符串結尾 list *node = (list*)malloc(sizeof(list)); // 創建節點 node->value = value; node->next = NULL; if (head == NULL) // 首節點 { head = node; tail = node; } else // 尾節點 { tail->next = node; tail = tail->next; } ch++; } else // 不是值,繼續往后讀取 { ch++; } } } ch++; } return head; } // 主函數 int main() { char jsonStr[] = "[{\"name\":\"張三\",\"age\":18},{\"name\":\"李四\",\"age\":20}]"; // JSON字符串 list *lst = json_to_list(jsonStr); // 轉換為列表對象 while (lst != NULL) // 遍歷列表 { printf("%s\n", lst->value); lst = lst->next; } return 0; }
以上代碼實現了一個簡單的JSON字符串轉列表對象的功能。具體實現過程是通過讀取JSON字符串中的字符來獲取其中的值,并創建相應的節點來存儲。該函數返回列表對象的頭節點,可用于進一步操作和管理列表對象。