在C語言中,我們可以使用libcurl庫來向服務器發送請求并接收返回的數據。而很多情況下,服務器返回的數據格式是JSON格式,因此我們需要學習如何處理JSON數據。
//首先我們需要引入json-c這個第三方庫 #include <json-c/json.h> //定義一個回調函數,用于處理返回的JSON數據 size_t handle_response(char *ptr, size_t size, size_t nmemb, void *userdata){ struct json_object *jobj = json_tokener_parse(ptr); //將返回的字符串轉化為json對象 json_object_object_foreach(jobj, key, val){ //遍歷json對象中的所有鍵值對 printf("%s : %s\n", key, json_object_get_string(val)); //輸出鍵值對的鍵和值 } return size * nmemb; //返回處理的數據大小 } //發送請求并接收返回數據 CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl){ curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/json-data"); //設置請求的URL curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, handle_response); //設置接收返回數據的回調函數 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_global_cleanup();
上面的代碼中,我們首先引入了json-c庫,然后定義了一個回調函數用于處理返回的JSON數據。這個回調函數首先將返回的字符串轉化為json對象,然后遍歷這個對象中的所有鍵值對,并輸出鍵值對的鍵和值。
最后,我們使用libcurl庫向服務器發起請求,并通過curl_easy_setopt函數設置了請求的URL和接收返回數據的回調函數。如果請求成功,則可以通過返回的數據進行進一步處理。
上一篇python 猜數字題目
下一篇json數據轉換vue