在C語言中,讀取JSON文件十分常見。以下是一個(gè)簡單的例子,演示了如何使用C語言讀取JSON文件并提取里面的某些信息。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main(void) { json_t *root; json_error_t error; // 打開文件,讀取JSON FILE *file = fopen("example.json", "r"); if (!file) { fprintf(stderr, "Failed to open file\n"); return 1; } // 解析JSON root = json_loadf(file, 0, &error); if (!root) { fprintf(stderr, "Failed to parse JSON: %s\n", error.text); fclose(file); return 1; } // 提取信息 json_t *name = json_object_get(root, "name"); printf("Name: %s\n", json_string_value(name)); json_t *age = json_object_get(root, "age"); printf("Age: %d\n", json_integer_value(age)); json_t *hobbies = json_object_get(root, "hobbies"); int i; printf("Hobbies:\n"); for (i = 0; i < json_array_size(hobbies); i++) { json_t *hobby = json_array_get(hobbies, i); printf(" - %s\n", json_string_value(hobby)); } // 清理內(nèi)存 json_decref(root); fclose(file); return 0; }
上面的代碼首先使用了jansson庫,這個(gè)庫是一個(gè)開源的C語言JSON解析器和生成器。程序首先打開JSON文件,然后使用json_loadf()函數(shù)解析JSON文件并將其存儲(chǔ)在json_t結(jié)構(gòu)體中。
一旦JSON文件被解析并存儲(chǔ)在json_t結(jié)構(gòu)體中,代碼可以使用json_object_get()函數(shù)從中提取信息。例如上面的代碼中,我們提取了名字、年齡和愛好信息。
最后,一定要記得釋放內(nèi)存,清理使用過的json_t結(jié)構(gòu)體!為此,我們使用了json_decref()函數(shù)。此外,我們還關(guān)閉了打開的文件。
以上這個(gè)例子雖然簡單,但它展示了如何使用C語言讀取JSON文件以及如何從中提取信息。如果想要進(jìn)一步學(xué)習(xí)C語言和JSON,請(qǐng)參考jansson庫的官方文檔。