在C語言中,把List轉化為JSON字符串可以通過使用cJSON庫來完成。cJSON庫是一個輕量級的JSON解析和生成庫,由于它的簡單易用、高效穩定以及跨平臺的特點,它已經成為了當前廣泛應用于嵌入式系統中JSON的解析庫。
//首先導入cJSON庫 #include "cJSON.h" void convertListToJson(List *list) { //創建一個cJSON對象 cJSON *root = cJSON_CreateObject(); //遍歷list,將list的數據插入到cJSON對象中 Node *node = list->head; while (node != NULL) { cJSON_AddStringToObject(root, node->key, node->value); node = node-next; } //將cJSON對象轉換為字符串 char *jsonString = cJSON_Print(root); //釋放cJSON對象內存 cJSON_Delete(root); //輸出JSON字符串 printf("%s", jsonString); //釋放JSON字符串內存 free(jsonString); }
如上述代碼所示,將list轉化為JSON字符串的關鍵在于,需要將list中的數據逐個插入到cJSON對象中,并且通過cJSON庫中的函數轉換為字符串后輸出。值得注意的是,在使用完cJSON對象之后需要使用cJSON_Delete函數來釋放內存,在使用完JSON字符串之后需要使用free函數來釋放內存,否則將會導致內存泄漏。