在C語言中,經常需要將json數據轉換成List數據結構進行處理。下面介紹一種用于將json轉換成List的方法。
// 定義List結構體 typedef struct LNode { char* value; // 數據域 struct LNode* next; // 指針域 } LNode, *List; // 定義json對象結構體 typedef struct Json { char* key; char* value; struct Json* next; } Json, *JsonObject; // 將json字符串轉換成json對象 JsonObject parseJson(char* jsonString) { // 執行json解析操作... } // 將json對象轉換成List數據結構 List jsonToList(JsonObject json) { LNode* head = NULL; // 初始化List頭節點 LNode* tail = NULL; // 初始化List尾節點 // 遍歷json對象 while (json != NULL) { // 將json對象的value作為List節點的數據域 LNode* node = (LNode*)malloc(sizeof(LNode)); node->value = json->value; node->next = NULL; // 將List節點插入到List的尾部 if (head == NULL) { head = node; tail = head; } else { tail->next = node; tail = tail->next; } // 處理下一個json對象 json = json->next; } return head; // 返回List頭節點 } int main() { char* jsonString = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; JsonObject json = parseJson(jsonString); // 將json字符串轉換成json對象 List list = jsonToList(json); // 將json對象轉換成List數據結構 // 遍歷List數據結構 LNode* p = list; while (p != NULL) { printf("%s\n", p->value); p = p->next; } return 0; }
上述代碼中,定義了List和Json兩個結構體,分別表示List數據結構和json對象。通過parseJson函數將json字符串轉換成json對象,然后使用jsonToList函數將json對象轉換成List數據結構。最后遍歷List數據結構,使用printf函數輸出List節點的數據域。