在C語言中,我們可以使用HTTP請求來獲取互聯網上的數據,其中也包括獲取網頁中的JSON數據。以下是一個通過C語言獲取網頁JSON數據的例子。
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <curl/curl.h> struct Data { char* data; size_t size; }; size_t writeCallback(char* ptr, size_t size, size_t nmemb, struct Data* data) { size_t realsize = size * nmemb; data->data = realloc(data->data, data->size + realsize + 1); if (data->data == NULL) { printf("Failed to allocate memory"); return 0; } memcpy(&(data->data[data->size]), ptr, realsize); data->size += realsize; data->data[data->size] = 0; return realsize; } char* getJSON(char* url) { CURL* curl; CURLcode res; struct Data data; data.data = malloc(1); data.size = 0; curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeCallback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &data); res = curl_easy_perform(curl); curl_easy_cleanup(curl); if (res != CURLE_OK) { printf("Failed to get JSON data.\nError: %s\n", curl_easy_strerror(res)); return NULL; } } return data.data; } int main(void) { char* jsonData = getJSON("https://example.com/example.json"); if(jsonData) { printf("%s", jsonData); free(jsonData); } return 0; }
這個例子中使用了libcurl庫來進行HTTP請求,并在writeCallback函數中接收回傳數據。
通過這個例子,我們可以輕松地獲取互聯網上的JSON數據,以后的開發中也可借助此方法快速獲取所需數據。
上一篇vue 防止連續提交
下一篇c 獲取json返回值