C JSON文件教程:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *filename = "test.json"; json_t *root; json_error_t error; root = json_load_file(filename, 0, &error); if (!root) { fprintf(stderr, "error: %s\n", error.text); return 1; } json_t *username, *age, *gender; const char *username_char; int age_int; const char *gender_char; username = json_object_get(root, "username"); username_char = json_string_value(username); age = json_object_get(root, "age"); age_int = json_integer_value(age); gender = json_object_get(root, "gender"); gender_char = json_string_value(gender); printf("Username: %s\n", username_char); printf("Age: %d\n", age_int); printf("Gender: %s\n", gender_char); json_decref(root); return 0; }
使用C語言解析JSON文件需要使用第三方庫Jansson。Jansson是一個只有C語言庫的JSON庫,提供解析和編寫JSON數(shù)據(jù)的函數(shù)。
在解析JSON文件時,需要使用json_load_file函數(shù)讀取JSON文件,并將其轉(zhuǎn)換為json_t結(jié)構(gòu)體的形式。如果讀取失敗,則可以使用json_error_t結(jié)構(gòu)體進(jìn)行錯誤處理。
然后,我們可以通過使用json_object_get函數(shù)來獲取JSON文件中的數(shù)據(jù)。我們需要傳入json_t結(jié)構(gòu)體中的鍵,函數(shù)會返回指向json_t結(jié)構(gòu)體的值的指針。
最后,我們可以使用json_string_value、json_integer_value等函數(shù)獲取對應(yīng)數(shù)據(jù)類型的實(shí)際值。
完成后不要忘記使用json_decref函數(shù)釋放json_t結(jié)構(gòu)體的內(nèi)存。