JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。在前端開發中,我們經常會遇到需要解析遠程 JSON 數據的情況。下面我們來看一下在 c 語言中如何解析遠程 JSON。
int main() { CURL *curl = curl_easy_init(); if (curl) { char *url = "http://example.com/data.json"; curl_easy_setopt(curl, CURLOPT_URL, url); // 設置回調函數 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback); CURLcode res = curl_easy_perform(curl); if (res != CURLE_OK) { printf("請求失敗:%s\n", curl_easy_strerror(res)); } curl_easy_cleanup(curl); } return 0; } size_t callback(char *ptr, size_t size, size_t nmemb, void *userdata) { size_t real_size = size * nmemb; cJSON *json = cJSON_Parse(ptr); // 解析 JSON // 在這里進行解析操作 cJSON_Delete(json); // 釋放內存 return real_size; }
首先需要利用 cURL 庫發送請求,獲取到遠程的 JSON 數據,然后通過 cJSON 庫解析 JSON。其中,設置回調函數是 cURL 庫的特性之一,每當獲取到數據時,回調函數就會被調用一次。
接著,在回調函數中,我們通過 cJSON_Parse() 函數將 JSON 字符串解析成 cJSON 對象,然后就可以通過 cJSON_GetObjectItem() 函數獲取對象中的屬性值,或者使用 cJSON_GetArrayItem() 函數獲取數組中的元素。
最后,別忘了在程序結束時使用 cJSON_Delete() 函數釋放內存,避免內存泄露。