C語言作為一門廣泛應用于軟件開發的語言,在請求JSON文件方面也是有很好的處理方式的。下面將介紹如何使用C語言請求JSON文件。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <curl/curl.h> struct MemoryStruct{ char *memory; size_t size; }; static size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp){ size_t realsize = size * nmemb; struct MemoryStruct *mem = (struct MemoryStruct *)userp; mem->memory = realloc(mem->memory, mem->size + realsize + 1); if(mem->memory == NULL){ printf("Out of memory\n"); return 0; } memcpy(&(mem->memory[mem->size]), contents, realsize); mem->size += realsize; mem->memory[mem->size] = 0; return realsize; } int main(int argc, char *argv[]){ CURL *curl; CURLcode res; struct MemoryStruct chunk; chunk.memory = malloc(1); chunk.size = 0; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if(curl){ curl_easy_setopt(curl, CURLOPT_URL, "http://jsonplaceholder.typicode.com/posts/1"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk); res = curl_easy_perform(curl); if(res != CURLE_OK){ fprintf(stderr, "curl_easy_perform() failed:%s\n",curl_easy_strerror(res)); }else{ printf("%lu bytes retrieved\n", (unsigned long)chunk.size); printf("%s\n", chunk.memory); } curl_easy_cleanup(curl); free(chunk.memory); } curl_global_cleanup(); return 0; }
首先,我們需要引入CURL庫,使用 #include <curl/curl.h> 引入。
其次,我們需要定義一個結構體 MemoryStruct 用于存儲JSON文件信息,包括文件,以及文件大小。
接著,我們需要定義一個回調函數WriteMemoryCallback,用于把JSON文件中的內容傳入到MemoryStruct中。
然后,我們需要定義一個CURL結構體和一個CURLcode類型的變量res,用于進行請求。
最后,我們需要對CURL進行設置,包括獲取JSON文件的URL、回調函數等等。最后通過 curl_easy_perform 函數執行CURL請求,請求完畢后釋放內存。
以上就是C語言請求JSON文件的過程,希望對你有所幫助。
下一篇python 必裝庫