在C語言中,訪問JSON文件并下載其中數(shù)據(jù)是一個常見的需求。JSON是一種輕量級的數(shù)據(jù)交換格式,多用于Web應(yīng)用程序中,可用于傳輸結(jié)構(gòu)化數(shù)據(jù)。下面我們將介紹如何在C語言中訪問JSON文件。
#include <stdio.h> #include <stdlib.h> #include <curl/curl.h> #include <string.h> // 回調(diào)函數(shù) size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp) { return fwrite(buffer, size, nmemb, (FILE *)userp); } int main() { CURL *curl; FILE *fp; CURLcode res; // 設(shè)置要下載的JSON文件URL以及保存的文件名 char* url = "http://example.com/example.json"; char outfilename[FILENAME_MAX] = "example.json"; curl = curl_easy_init(); if (curl) { fp = fopen(outfilename,"wb"); // 設(shè)置要下載的文件URL curl_easy_setopt(curl, CURLOPT_URL, url); // 設(shè)置回調(diào)函數(shù)以寫入文件 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); // 設(shè)置文件保存的位置 curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); // 執(zhí)行curl_easy_perform進(jìn)行下載 res = curl_easy_perform(curl); // 判斷是否下載成功 if (res != CURLE_OK) { printf("curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } // 關(guān)閉文件和curl fclose(fp); curl_easy_cleanup(curl); } return 0; }
以上代碼實現(xiàn)了從指定URL下載JSON文件,并保存到本地文件中。在代碼中,我們使用了libcurl庫來進(jìn)行文件訪問和下載。通過設(shè)置對應(yīng)的選項,我們可以實現(xiàn)文件的下載和保存。