欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 請求接口并解析json

錢衛國1年前8瀏覽0評論

在Web開發中,經常需要通過請求接口獲取數據,而常用的接口格式之一就是JSON。那么,在C語言中如何請求接口并解析JSON呢?

首先,需要用到cURL庫來進行接口請求。cURL支持通過HTTP請求獲取數據,而且也支持HTTPS請求。以下是一個獲取JSON數據的示例:

#include#includeint main(void)
{
CURL *curl;
CURLcode res;
char *url = "http://example.com/data.json"; // 請求地址
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, url); // 設置請求地址
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); // 跟隨重定向
res = curl_easy_perform(curl); // 執行請求
if(res == CURLE_OK) {
printf("%s\n", curl_easy_strerror(res)); // 輸出請求結果
}
curl_easy_cleanup(curl); // 清理curl
}
return 0;
}

代碼中使用了curl_easy_init()函數初始化cURL庫,然后通過curl_easy_setopt()函數設置請求地址、跟隨重定向等參數,最后通過curl_easy_perform()函數執行請求,并通過printf()輸出請求結果。如果請求成功,函數返回值為CURLE_OK。

接下來,需要解析獲取到的JSON數據。可以使用cJSON庫來進行JSON解析。以下是一個解析JSON數據的示例:

#include#include#include "cJSON.h"
int main(void)
{
CURL *curl;
CURLcode res;
char *url = "http://example.com/data.json";
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
res = curl_easy_perform(curl);
if(res == CURLE_OK) {
char *json_str = NULL;
cJSON *json = cJSON_Parse(json_str); // 解析JSON數據
cJSON *data = cJSON_GetObjectItemCaseSensitive(json, "data"); // 獲取"data"字段
if(cJSON_IsArray(data)) { // 判斷"data"字段是否為數組
cJSON_ArrayForEach(data_item, data) { // 遍歷數組項
cJSON *id = cJSON_GetObjectItemCaseSensitive(data_item, "id");
cJSON *name = cJSON_GetObjectItemCaseSensitive(data_item, "name");
printf("id: %d, name: %s\n", id->valueint, name->valuestring);
}
}
cJSON_Delete(json); // 刪除JSON數據
}
curl_easy_cleanup(curl);
}
return 0;
}

代碼首先使用cJSON_Parse()函數解析獲取到的JSON數據,然后使用cJSON_GetObjectItemCaseSensitive()函數獲取"data"字段,判斷其是否為數組,并使用cJSON_ArrayForEach()函數遍歷數組項,獲取每一項的"id"和"name"字段,并輸出其值。

以上就是在C語言中請求接口并解析JSON的基本流程,當然還有更加復雜的JSON數據結構和接口請求方法,需要根據具體情況進行調整。