在C語言中將list轉json格式需要用到json-c這個庫,該庫提供了對json數據的解析和生成的功能。
以下是將list轉換為json的C語言代碼示例:
#include <stdio.h> #include <json-c/json.h> int main() { struct list_head list; struct json_object *jobj, *jarray; struct student *stu; // 初始化list INIT_LIST_HEAD(&list); // 添加元素到list stu = (struct student *)malloc(sizeof(struct student)); list_add_tail(&stu->list, &list); // 生成json對象 jobj = json_object_new_object(); // 將list轉為json數組 jarray = json_object_new_array(); list_for_each_entry(stu, &list, list) { json_object *jstu = json_object_new_object(); json_object_object_add(jstu, "name", json_object_new_string(stu->name)); json_object_object_add(jstu, "age", json_object_new_int(stu->age)); json_object_array_add(jarray, jstu); } json_object_object_add(jobj, "students", jarray); // 輸出json字符串 printf("%s\n", json_object_to_json_string(jobj)); return 0; }
在代碼中,首先定義了一個list頭,并通過INIT_LIST_HEAD()函數進行初始化。然后,通過list_add_tail()函數向list中添加元素。
接下來,通過json-c庫的json_object_new_object()函數創建一個json對象,然后使用json_object_new_array()函數將list轉為一個json數組。在循環中,使用json_object_new_object()函數創建一個包含學生姓名和年齡的json對象,并使用json_object_array_add()函數將這個對象添加到json數組中。
最后,在json對象中添加名為"students"的數組,并使用json_object_to_json_string()函數將json對象轉換為字符串輸出。