在 C 語言中,我們可以通過一些庫來獲取 JSON 數據。這里我們選擇使用 cJSON 庫,cJSON 是一個輕量級的 C 語言庫,可以方便地解析 JSON 數據。以下是在 C 語言中獲取 JSON 數據的步驟:
/* 導入 cJSON 頭文件 */ #include "cJSON.h" /* 定義從 Web API 獲取 JSON 數據的函數 */ char *http_get(const char *url); /* 定義處理 JSON 數據的函數 */ void handle_json_data(const char *json_data) { /* 將 JSON 字符串轉換成 cJSON 對象 */ cJSON *json = cJSON_Parse(json_data); /* 檢查 cJSON 對象是否為空 */ if (json == NULL) { /* 解析失敗,輸出錯誤信息 */ const char *error_ptr = cJSON_GetErrorPtr(); if (error_ptr != NULL) { fprintf(stderr, "Error before: %s\n", error_ptr); } } else { /* 解析成功,獲取 JSON 中的數據 */ cJSON *data = cJSON_GetObjectItem(json, "data"); cJSON *status = cJSON_GetObjectItem(json, "status"); /* 打印獲取到的數據 */ printf("Data: %s\n", cJSON_Print(data)); printf("Status: %d\n", status->valueint); /* 釋放 cJSON 對象 */ cJSON_Delete(json); } } int main() { /* 獲取 Web API 返回的 JSON 數據 */ char *json_data = http_get("http://api.example.com/data.json"); /* 處理 JSON 數據 */ handle_json_data(json_data); /* 釋放 JSON 數據內存 */ free(json_data); return 0; }
在上面的代碼中,我們先定義了一個從 Web API 獲取 JSON 數據的函數 http_get()。在函數內部,我們可以使用任何 HTTP 庫來發送 HTTP 請求并獲取 Web API 返回的 JSON 數據。
然后,我們定義了一個處理 JSON 數據的函數 handle_json_data()。在函數內部,我們先將 JSON 字符串轉換成 cJSON 對象,然后通過 cJSON_GetObjectItem() 函數獲取 JSON 中的數據。最后,我們使用 cJSON_Print() 函數將 cJSON 對象轉換成 JSON 字符串,然后打印出來。
最后,在 main() 函數中,我們先獲取 Web API 返回的 JSON 數據,然后調用 handle_json_data() 函數來處理數據,最后釋放 JSON 數據的內存。