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

c http請(qǐng)求 json數(shù)組

在進(jìn)行web開(kāi)發(fā)時(shí),我們通常需要通過(guò)http請(qǐng)求獲取數(shù)據(jù)。而json格式的數(shù)據(jù)已經(jīng)成為了現(xiàn)在web開(kāi)發(fā)中最流行的數(shù)據(jù)格式之一。如何在c語(yǔ)言中使用http請(qǐng)求獲取json數(shù)組數(shù)據(jù)呢?

我們可以使用c語(yǔ)言中的curl庫(kù)來(lái)進(jìn)行http請(qǐng)求,然后使用json-c庫(kù)來(lái)解析json數(shù)據(jù)。

#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>
#include <json-c/json.h>
int main() {
// 初始化curl
curl_global_init(CURL_GLOBAL_ALL);
// 創(chuàng)建curl句柄
CURL *curl = curl_easy_init();
if (curl) {
// 設(shè)置請(qǐng)求地址和參數(shù)
char *url = "http://example.com/data.json";
curl_easy_setopt(curl, CURLOPT_URL, url);
// 設(shè)置請(qǐng)求頭
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Accept: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
// 執(zhí)行請(qǐng)求
CURLcode res = curl_easy_perform(curl);
// 解析json數(shù)組
struct json_object *root_obj;
root_obj = json_tokener_parse(response.memory);
int length = json_object_array_length(root_obj);
for (int i = 0; i < length; i++) {
struct json_object *obj = json_object_array_get_idx(root_obj, i);
printf("id: %d, name: %s\n", json_object_get_int(json_object_object_get(obj, "id")),
json_object_get_string(json_object_object_get(obj, "name")));
}
// 釋放資源
json_object_put(root_obj);
curl_slist_free_all(headers);
free(response.memory);
curl_easy_cleanup(curl);
}
// 清理curl
curl_global_cleanup();
return 0;
}

以上代碼中,我們使用了curl_easy_setopt函數(shù)來(lái)設(shè)置請(qǐng)求參數(shù)。其中,CURLOPT_URL設(shè)置請(qǐng)求地址,CURLOPT_HTTPHEADER設(shè)置請(qǐng)求頭,CURLOPT_WRITEFUNCTION和CURLOPT_WRITEDATA用來(lái)設(shè)置請(qǐng)求回調(diào)函數(shù)和回調(diào)參數(shù)。

我們使用json_tokener_parse函數(shù)來(lái)解析json數(shù)組數(shù)據(jù),然后使用json_object_array_length和json_object_array_get_idx函數(shù)來(lái)遍歷數(shù)組元素,并使用json_object_get_int和json_object_get_string來(lái)獲取元素的屬性值。

使用curl和json-c庫(kù),我們可以方便地在c語(yǔ)言中實(shí)現(xiàn)http請(qǐng)求獲取json數(shù)組數(shù)據(jù)。