C語言是一門廣泛應用于系統編程、嵌入式、網絡編程、游戲開發等領域的語言,具有高效性和可移植性等特點。本文將介紹如何通過C語言獲取中國所有城市列表的JSON數據。
#include <stdio.h> #include <stdlib.h> #include <curl/curl.h> #include <jansson.h> int main() { CURL *curl; CURLcode res; curl = curl_easy_init(); if(curl) { const char *url = "https://api.asilu.com/weather/city"; curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); res = curl_easy_perform(curl); if(res == CURLE_OK) { char *buffer; long http_code = 0; curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_code); if(http_code == 200) { json_error_t error; json_t *root; size_t flags; buffer = curl_easy_escape(curl, curl_easy_strerror(res), 0); root = json_loads(buffer, 0, &error); json_decref(root); curl_free(buffer); } } curl_easy_cleanup(curl); } return 0; }
以上代碼利用了libcurl庫和jansson庫來完成獲取JSON數據的操作。其中,libcurl庫是一個廣泛應用于網絡編程的開源C語言庫,可以用于HTTP、FTP、SMTP等協議的編寫;jansson庫則是一個用于解析和生成JSON數據的輕量級庫,簡單易用。