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

c 封裝json接口讀取

林玟書1年前10瀏覽0評論

JSON是一種輕量級的數據交換格式,現在越來越受到廣大開發者的青睞。在c語言中,封裝JSON接口讀取是一個非常重要的任務,因為它可以使得我們能夠更方便地處理JSON格式的數據。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
json_t *load_json_file(const char *filename) {
json_error_t error;
json_t *root;
FILE *fp;
long len;
char *data;
fp = fopen(filename, "rb");
if (!fp) {
return NULL;
}
fseek(fp, 0, SEEK_END);
len = ftell(fp);
fseek(fp, 0, SEEK_SET);
data = (char *)malloc(len + 1);
if (!data) {
fclose(fp);
return NULL;
}
if (fread(data, 1, len, fp) != len) {
free(data);
fclose(fp);
return NULL;
}
data[len] = '\0';
root = json_loads(data, 0, &error);
free(data);
fclose(fp);
if (!root) {
fprintf(stderr, "json error on line %d: %s\n", error.line, error.text);
}
return root;
}
int main() {
json_t *root;
json_t *users;
json_t *user;
json_t *name;
json_t *age;
int i;
root = load_json_file("users.json");
if (!root) {
return 1;
}
users = json_object_get(root, "users");
if (!users) {
fprintf(stderr, "Invalid JSON file\n");
return 1;
}
for (i = 0; i< json_array_size(users); i++) {
user = json_array_get(users, i);
name = json_object_get(user, "name");
age = json_object_get(user, "age");
if (name && age) {
printf("Name: %s\n", json_string_value(name));
printf("Age: %d\n", json_integer_value(age));
printf("\n");
}
}
json_decref(root);
return 0;
}

這段代碼可以方便地讀取JSON格式的數據文件,并對其中的數據進行處理。在這個例子中,我們讀取了一個名為“users.json”的文件,文件里面包含了一個名為“users”的JSON數組,每個元素都包含了“name”和“age”兩個字段。我們遍歷該數組,將每個元素中的“name”和“age”字段讀取出來,并輸出到控制臺上。