在我們的日常生活中,天氣預報對我們的生活產生著很大的影響。為了獲取最新、最準確的天氣預報信息,我們可使用C語言中的JSON。
#include#include #include #include int main(void) { CURL *curl = curl_easy_init(); if(curl) { const char *url = "http://api.openweathermap.org/data/2.5/weather?q=Shanghai&appid=API_KEY"; CURLcode res; curl_easy_setopt(curl, CURLOPT_URL, url); res = curl_easy_perform(curl); if(res != CURLE_OK) { printf("curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } else { char *data; long code; curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code); curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &code); printf("Response code: %ld\n", code); if(code >0) { data = (char *) malloc(code + 1); curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &data); curl_easy_getinfo(curl, CURLINFO_DATA_OUT, &data); printf("Content type: %s\n", data); printf("Data received: %s\n", data); json_object *root = json_tokener_parse(data); json_object *temp, *description, *city; json_object_object_get_ex(root, "main", &temp); json_object_object_get_ex(root, "weather", &description); json_object_object_get_ex(root, "name", &city); double t; json_object *temp_value; json_object_object_get_ex(temp, "temp", &temp_value); t = json_object_get_double(temp_value); printf("\nCity: %s\n", json_object_get_string(city)); printf("Temperature: %.2f degrees celsius\n", t-273); json_object *description_value = json_array_get_idx(description, 0); printf("Description: %s\n", json_object_get_string(json_object_object_get(description_value, "description"))); } } curl_easy_cleanup(curl); } return 0; }
在上述代碼中,我們使用了cURL和JSON-C這兩個庫。JSON對象在此處用于解析Open Weather Map API返回的JSON數據。
在CURL中,我們首先指定要獲取的URL。然后通過使用CURLOPT_URL選項來設置URL,并使用curl_easy_perform()函數來執行該請求。我們解析JSON對象以讀取所需的值,如城市名、溫度和天氣情況等信息。最后,我們釋放CURL句柄并返回0。
使用C語言中的JSON,我們可以輕松地獲取天氣預報數據,從而滿足我們對最新、最準確的天氣預報信息的需求。
上一篇python 抓包開源
下一篇c json 存入數據庫