在C語言中,我們可以通過網址獲取網頁的JSON信息。這在一些數據分析和爬蟲方面非常有用。下面我們來看看如何實現。
#include <stdio.h> #include <cURL/curl.h> // 回調函數,用于將獲取的數據寫入一個字符串 static size_t write_callback_func(void *buffer, size_t size, size_t nmemb, void *userp) { char **response_ptr = userp; size_t real_size = size * nmemb; // 給字符串分配足夠的空間 *response_ptr = realloc(*response_ptr, strlen(*response_ptr) + real_size + 1); if (*response_ptr == NULL) { fprintf(stderr, "realloc() failed\n"); return 0; } // 將數據寫入字符串 memcpy(*response_ptr + strlen(*response_ptr), buffer, real_size); *(*response_ptr + strlen(*response_ptr) + real_size) = '\0'; return real_size; } int main() { CURL *curl; CURLcode res; char *response_str = calloc(1, sizeof(char)); if(!response_str) { fprintf(stderr, "calloc() failed\n"); return 1; } curl = curl_easy_init(); if(curl) { // 設置要訪問的URL curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/json_data"); // 設置回調函數 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback_func); // 設置回調函數使用的字符串 curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response_str); // 執行訪問 res = curl_easy_perform(curl); // 檢查是否出錯 if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } else { // 輸出獲取的JSON信息 printf("%s\n", response_str); } //釋放curl資源 curl_easy_cleanup(curl); } //釋放空間 free(response_str); return 0; }
在這段代碼中,我們首先使用
通過這個簡單的例子,我們可以看到,用C語言獲取網頁JSON信息并不難。這對于一些需要處理大量數據的工作非常有價值。
上一篇c需要json解析
下一篇vue 頁面刷新空白