本文將講解如何使用C語言中的libcurl庫完成GET請求,解析返回的JSON數據。
首先,需要安裝libcurl庫,具體安裝步驟可參考其官方文檔。接著,通過以下代碼實現GET請求:
CURL *curl; CURLcode res; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); res = curl_easy_perform(curl); if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); curl_easy_cleanup(curl); }
上述代碼中,通過curl_easy_init()函數初始化curl,設置請求URL地址,然后執行請求并存儲結果到res變量中,最后通過curl_easy_cleanup()函數清理curl。
得到請求結果后,需要使用JSON解析庫解析返回的JSON數據。常用的JSON解析庫有cJSON和jansson,其中cJSON庫使用相對簡單,以下是一個使用cJSON庫解析JSON數據的示例:
#include <stdio.h> #include <cJSON.h> int main() { char *data = "{\"name\":\"John Smith\",\"age\":28}"; cJSON *root = cJSON_Parse(data); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); printf("name: %s\n", name->valuestring); printf("age: %d\n", age->valueint); cJSON_Delete(root); return 0; }
上述代碼中,通過cJSON_Parse()函數將JSON字符串解析成cJSON對象,并通過cJSON_GetObjectItem()函數獲取對象中指定的鍵值對,最后通過cJSON_Delete()函數釋放內存。
通過以上代碼示例,我們就可以使用C語言中的libcurl和cJSON庫完成GET請求和JSON數據解析。
上一篇python 手機模塊嗎
下一篇mysql單表查詢優化