在數據處理領域中,JSON是一個廣泛使用的數據格式。JSON是一種輕量級的數據交換格式,非常適合用于Web應用程序中。在C語言中,我們使用JSON作為數據交換格式時,需要將JSON數據轉換為C語言中的數據類型。下面是一個將JSON轉換為C語言中List的例子。
#include <jansson.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct item_s {
int id;
char* name;
} item_t;
int main() {
char *json_str = "{\"items\":[{\"id\":1,\"name\":\"item1\"},{\"id\":2,\"name\":\"item2\"},{\"id\":3,\"name\":\"item3\"}]}";
json_t *root;
json_error_t error;
root = json_loads(json_str, 0, &error);
if (!root) {
fprintf(stderr, "error: on line %d: %s\n", error.line, error.text);
return 1;
}
json_t *items = json_object_get(root, "items");
int count = json_array_size(items);
item_t *list = (item_t*)malloc(sizeof(item_t) * count);
int i;
for (i = 0; i < count; i++) {
json_t *item = json_array_get(items, i);
list[i].id = json_integer_value(json_object_get(item, "id"));
list[i].name = strdup(json_string_value(json_object_get(item, "name")));
}
for (i = 0; i < count; i++) {
printf("id: %d, name: %s\n", list[i].id, list[i].name);
}
for (i = 0; i < count; i++) {
free(list[i].name);
}
free(list);
json_decref(root);
return 0;
}
在上面的例子中,我們首先定義了一個結構體item_t,該結構體包含了兩個成員變量,id和name。然后我們定義了一個JSON字符串,該JSON字符串包含了一個item數組。我們使用json_loads函數將JSON字符串加載到json_t類型的根對象中。然后我們從根對象中獲取items數組,并遍歷items數組,將item對象轉換為item_t結構體。最后,我們將結果打印出來,并釋放內存。
上一篇get提交json參數
下一篇python 設定數組