欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json序列化 listt

呂致盈2年前8瀏覽0評論

C語言中的JSON序列化庫是非常流行的,因為JSON作為一種輕量級的數據交換格式,已經被廣泛應用于互聯網開發中。而使用List數據結構進行JSON序列化,則是一種非常高效的方式。

#include <stdio.h>
#include <jansson.h>
#include <glib.h>
typedef struct{
gchar *name;
gint age;
}Person;
int main(){
GList *person_list = NULL;
Person *person1 = g_new0(Person,1);
person1->name = g_strdup("張三");
person1->age = 25;
person_list = g_list_append(person_list, person1);
Person *person2 = g_new0(Person,1);
person2->name = g_strdup("李四");
person2->age = 30;
person_list = g_list_append(person_list, person2);
json_t *persons = json_array();
GList *p;
for(p=person_list;p!=NULL;p=p->next){
Person *person = (Person*)(p->data);
json_t *jobj = json_object();
json_object_set_new(jobj, "name", json_string(person->name));
json_object_set_new(jobj, "age", json_integer(person->age));
json_array_append_new(persons,jobj);
}
char *json_str = json_dumps(persons, JSON_ALLOW_NUL);
printf("%s\n",json_str);
g_free(json_str);
json_decref(persons);
g_list_free_full(person_list, g_free);
return 0;
}

上面的代碼演示了如何使用List數據結構進行JSON序列化。其中,我們定義了一個代表人員信息的結構體Person,包含了名字和年齡兩個字段。在主函數中,我們創建了一個GList類型的person_list,添加了兩個Person類型的數據。接著,我們創建了一個JSON數組persons,并遍歷person_list,將其中的Person類型數據依次轉化為JSON對象jobj,并添加到persons數組中。

最后,使用json_dumps函數將persons數組轉化為JSON字符串,并輸出到控制臺。

需要注意的是,在釋放person_list時要使用g_list_free_full函數,這樣才能同時釋放所有Person類型數據中的動態內存。