在C語言中調用JSON文件,需要使用第三方庫來實現。常用的JSON解析庫有 cJSON、json-c 和 Jansson 等。
下面以 cJSON 庫為例,介紹C語言如何調用JSON文件。
#include "cJSON.h" #include <stdio.h> int main() { // 讀取JSON文件內容 FILE *f = fopen("example.json", "rb"); fseek(f, 0, SEEK_END); long len = ftell(f); fseek(f, 0, SEEK_SET); char *data = (char*)malloc(len + 1); fread(data, 1, len, f); fclose(f); data[len] = '\0'; // 解析JSON文件 cJSON *root = cJSON_Parse(data); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *hobbies = cJSON_GetObjectItem(root, "hobbies"); // 輸出JSON文件內容 printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); printf("Hobbies:\n"); cJSON *hobby = NULL; cJSON_ArrayForEach(hobby, hobbies) { printf(" - %s\n", hobby->valuestring); } // 釋放內存 cJSON_Delete(root); free(data); return 0; }
上述代碼中,首先讀取 JSON 文件的內容并將其存儲在 char 類型的 data 數組中。然后使用 cJSON 庫的 cJSON_Parse 函數,將數據解析為 cJSON 對象。接著通過 cJSON_GetObjectItem 函數,獲取到 JSON 文件中各個字段的值,并使用 printf 函數打印出來。
最后,使用 cJSON_Delete 函數釋放內存,并使用 free 函數釋放 data 數組的內存。