在C語言中,抓取JSON的方法有很多。本文將介紹使用C語言抓取JSON的方法。
// 引入必要的頭文件 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <curl/curl.h> #include <sjson/json.h> // 定義一個回調函數 size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) { size_t real_size = size * nmemb; char *response = (char*)realloc(userdata, real_size + 1); if(response == NULL) { return 0; } memcpy(&(response[sizeof(response) - 1]), ptr, real_size); response[real_size] = '\\0'; return real_size; } // 獲取JSON函數 json_value* get_json(char *url) { CURL *curl = curl_easy_init(); if(curl == NULL) { return NULL; } // 設置CURL參數 curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, response); // 執行HTTP請求 CURLcode result = curl_easy_perform(curl); if(result != CURLE_OK) { return NULL; } json_value *json = json_parse(response); if(json == NULL) { return NULL; } curl_easy_cleanup(curl); return json; } int main(int argc, char const *argv[]) { json_value *json = get_json("http://test.com/json"); if(json != NULL) { printf("%s", json->u.string.ptr); json_value_free(json); } return 0; }
首先,我們需要引入必要的頭文件。然后我們定義了一個回調函數,用于處理HTTP請求中的返回結果。接著,我們定義了一個get_json函數,用來獲取JSON對象。在get_json函數中,我們使用CURL庫來發起HTTP請求,獲取JSON數據。最后,我們在main函數中調用get_json函數,獲取JSON,輸出JSON內容。
上一篇import大括號vue
下一篇input組件傳輸vue