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

c語言中json發(fā)送和解析過程

JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,它非常適合發(fā)送和解析數(shù)據(jù)。C語言中也提供了相關(guān)的庫方便我們發(fā)送和解析JSON數(shù)據(jù)。

1. JSON發(fā)送

#include <stdio.h>#include <stdlib.h>#include <curl/curl.h>#include <cJSON.h>int main() {
CURL *curl;
CURLcode res;
// 創(chuàng)建一個(gè)cJSON對(duì)象并添加數(shù)據(jù)
cJSON *root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", "Tom");
cJSON_AddNumberToObject(root, "age", 21);
cJSON_AddBoolToObject(root, "married", false);
// 將cJSON對(duì)象轉(zhuǎn)換成JSON字符串
char *json = cJSON_Print(root);
// 初始化CURL
curl = curl_easy_init();
if (curl) {
// 設(shè)置請(qǐng)求的URL
curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/api");
// 設(shè)置POST請(qǐng)求方式
curl_easy_setopt(curl, CURLOPT_POST, 1L);
// 設(shè)置POST的數(shù)據(jù)
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json);
// 發(fā)送請(qǐng)求
res = curl_easy_perform(curl);
// 清理curl對(duì)象
curl_easy_cleanup(curl);
}
// 釋放cJSON的內(nèi)存
cJSON_Delete(root);
// 釋放JSON字符串的內(nèi)存
free(json);
return 0;
}

2. JSON解析

#include <stdio.h>#include <stdlib.h>#include <cJSON.h>int main() {
// JSON字符串
char *json_str = "{\"name\": \"Tom\", \"age\": 21, \"married\": false}";
// 解析JSON字符串
cJSON *root = cJSON_Parse(json_str);
if (root) {
// 獲取name字段的值
cJSON *name_item = cJSON_GetObjectItem(root, "name");
if (name_item) {
printf("name: %s\n", name_item->valuestring);
}
// 獲取age字段的值
cJSON *age_item = cJSON_GetObjectItem(root, "age");
if (age_item) {
printf("age: %d\n", age_item->valueint);
}
// 獲取married字段的值
cJSON *married_item = cJSON_GetObjectItem(root, "married");
if (married_item) {
printf("married: %d\n", married_item->valueint);
}
// 釋放cJSON對(duì)象
cJSON_Delete(root);
}
return 0;
}