C語言中,使用list集合儲存數據時,有時需要將其轉換成可以方便傳遞的json格式,這時可以使用cJSON這個第三方庫來實現。
//將list集合轉換成json格式 cJSON* list_to_json(List list){ cJSON* root = cJSON_CreateArray(); ListNode* p = list.head; while(p != NULL){ cJSON_AddItemToArray(root, cJSON_CreateString(p->data)); p = p->next; } return root; }
代碼中使用了cJSON_CreateArray()函數創(chuàng)建一個數組類型的json對象,然后遍歷list集合,將每個節(jié)點的data數據轉換成json字符串再添加到數組中。最后將整個數組返回。
轉換json后,我們也可以使用其他cJSON提供的函數將其進行解析和操作。
//解析json字符串,并將其轉換成list集合 List json_to_list(char* json_str){ List list; ListNode* tail = NULL; cJSON* root = cJSON_Parse(json_str); if(root == NULL){ return list; } cJSON* item = root->child; while(item != NULL){ ListNode* node = (ListNode*)malloc(sizeof(ListNode)); node->data = strdup(item->valuestring); node->next = NULL; if(tail == NULL){ list.head = node; tail = node; } else { tail->next = node; tail = node; } item = item->next; } cJSON_Delete(root); return list; }
代碼中使用了cJSON_Parse()函數將json字符串解析成cJSON對象,然后遍歷其子對象,取出每個值,并添加到list集合中。
通過以上方法,我們可以很方便地將c語言中的list集合轉換成json格式,方便數據的傳遞和解析。