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

c json listt

李中冰2年前7瀏覽0評論

在C語言中,JSON是經常用到的數據格式,而list是一種常見的數據結構。那么如何處理C語言中的JSON列表呢?以下就是一個使用C語言處理JSON數據列表的示例。

#include <stdio.h>
#include <jansson.h>
#include <glib.h>
typedef struct {
gchar *name;
gint age;
} Person;
static void print_persons(GList *persons)
{
for (GList *iter = persons; iter; iter = g_list_next(iter)) {
Person *p = iter->data;
g_print("Name:%s, Age:%d\n", p->name, p->age);
}
}
int main()
{
const char *json_str = "[{\"name\":\"Alice\",\"age\":20},{\"name\":\"Bob\",\"age\":30}]";
json_error_t error;
json_t *root = json_loads(json_str, 0, &error);
if (!root) {
g_warning("Failed to parse json:%s", error.text);
return 1;
}
GList *persons = NULL;
for (size_t i = 0; i< json_array_size(root); ++i) {
json_t *person_json = json_array_get(root, i);
Person *p = g_new(Person, 1);
json_t *name_json = json_object_get(person_json, "name");
json_t *age_json = json_object_get(person_json, "age");
if (!name_json || !age_json) {
g_warning("Invalid persons format");
g_free(p);
continue;
}
p->name = g_strdup(json_string_value(name_json));
p->age = json_integer_value(age_json);
persons = g_list_append(persons, p);
}
print_persons(persons);
json_decref(root);
g_list_free_full(persons, (GDestroyNotify)g_free);
return 0;
}

在上述示例中,我們將JSON數據列表解析成了一個GList對象,通過遍歷GList對象來輸出每個Person對象的姓名和年齡。JSON數據列表中的每個元素都是一個JSON對象,我們通過json_object_get函數來獲取其中的name和age屬性。