C語言是一種被廣泛應用于系統編程、嵌入式系統和游戲開發等領域的編程語言。在開發過程中,常常需要將數據以JSON的形式傳輸。本文將介紹使用C語言獲取JSON數據的方法。
代碼示例: #include#include #include "cJSON.h" #define URL "http://example.com/jsondata" int main() { CURL *curl; CURLcode res; char *data; cJSON *json; long code; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, URL); res = curl_easy_perform(curl); if (res == CURLE_OK) { curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code); if (code == 200) { data = curl_easy_escape(curl, res, 0); json = cJSON_Parse(data); // do something with json cJSON_Delete(json); } else { printf("Server returned %ld HTTP error\n", code); } } else { printf("Failed to get JSON data, CURL error %d\n", res); } curl_easy_cleanup(curl); } curl_global_cleanup(); return 0; }
上述代碼使用了libcurl庫和cJSON庫。其中libcurl庫是一個開源的網絡通信庫,可用于HTTP/HTTPS/FTP等協議的通信。而cJSON庫則是一個輕量級的JSON解析庫,適用于嵌入式系統和服務器端開發等領域。
代碼中的cURL是一個命令行工具,可以直接通過命令行獲取JSON數據。curl_easy_init()用于初始化一個CURL句柄。curl_easy_setopt()用于設置CURL選項,主要包括URL、請求方法、請求頭、請求體等。curl_easy_perform()用于執行請求,返回請求結果。curl_easy_getinfo()用于獲取HTTP響應碼。curl_easy_cleanup()用于關閉CURL句柄并釋放內存。
cJSON_Parse()用于將JSON字符串解析為cJSON對象,cJSON_Delete()用于釋放cJSON對象內存。cJSON_GetObjectItem()用于獲取cJSON對象的鍵值對。例如:cJSON_GetObjectItem(json, "name")。
在實際開發中,還需要做好異常處理,如網絡異常、JSON解析異常等。以上代碼示例僅供參考,如有不妥之處,請多多指教。
上一篇go解析json部分字段
下一篇python 撲克牌花色