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”字段讀取出來,并輸出到控制臺上。
上一篇python 流量監控器
下一篇python 測試安卓