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

c 利用json發(fā)送對象

吉茹定2年前9瀏覽0評論

在C語言中使用JSON發(fā)送對象是一個非常方便的方法。JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,可用于將結(jié)構(gòu)化數(shù)據(jù)編碼為字符串。C語言中可以使用第三方庫來處理JSON數(shù)據(jù)并發(fā)送至網(wǎng)絡。

在以下示例中,我們將使用cJSON庫來處理JSON數(shù)據(jù)。cJSON是一個輕量級的JSON解析庫,可用于解析JSON數(shù)據(jù)并將其轉(zhuǎn)換為C結(jié)構(gòu)體。我們還將使用libcurl庫來將JSON數(shù)據(jù)發(fā)送到網(wǎng)絡。

#include <cJSON.h>
#include <curl/curl.h>
int main(void) {
// 初始化cURL
curl_global_init(CURL_GLOBAL_DEFAULT);
// 創(chuàng)建cJSON對象
cJSON *root = cJSON_CreateObject();
// 添加字符串
cJSON_AddStringToObject(root, "name", "John Doe");
// 添加整數(shù)
cJSON_AddNumberToObject(root, "age", 30);
// 添加布爾值
cJSON_AddBoolToObject(root, "employed", cJSON_TRUE);
// 將cJSON對象轉(zhuǎn)換為字符串
char *json_str = cJSON_Print(root);
// 創(chuàng)建cURL句柄
CURL *curl = curl_easy_init();
// 設置URL
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api");
// 設置POST請求
curl_easy_setopt(curl, CURLOPT_POST, 1L);
// 設置POST數(shù)據(jù)
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_str);
// 發(fā)送請求
CURLcode res = curl_easy_perform(curl);
// 檢查請求是否成功
if (res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
}
// 釋放cJSON對象
cJSON_Delete(root);
// 釋放JSON字符串
cJSON_free(json_str);
// 清理cURL
curl_easy_cleanup(curl);
// 全局清理cURL
curl_global_cleanup();
return 0;
}

上述代碼首先使用cJSON_CreateObject()函數(shù)創(chuàng)建了一個cJSON對象,并使用cJSON_AddStringToObject()、cJSON_AddNumberToObject()和cJSON_AddBoolToObject()函數(shù)分別添加了字符串、整數(shù)和布爾值。然后,使用cJSON_Print()函數(shù)將cJSON對象轉(zhuǎn)換為字符串。

接下來,使用curl_easy_init()函數(shù)創(chuàng)建了一個新的cURL句柄,并使用curl_easy_setopt()函數(shù)設置URL、POST請求和POST數(shù)據(jù)。最后,使用curl_easy_perform()函數(shù)發(fā)送請求。

在請求發(fā)送后,檢查curl_easy_perform()函數(shù)的返回值以確保請求成功。如果請求失敗,可以使用curl_easy_strerror()函數(shù)打印錯誤信息。

最后,使用cJSON_Delete()函數(shù)釋放cJSON對象,并使用cJSON_free()函數(shù)釋放JSON字符串。使用curl_easy_cleanup()函數(shù)清理cURL句柄。最后,使用curl_global_cleanup()函數(shù)進行全局清理。