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

c 傳一個json給服務端

林子帆1年前8瀏覽0評論

在使用C語言編寫網絡編程的過程中,有時候需要將一個JSON對象傳遞給服務端。這時候,可以使用C語言中的JSON庫對JSON對象進行處理,然后再使用網絡編程的相關函數將JSON對象傳遞給服務端。

// 以下代碼使用C語言中的 cJSON 庫來處理JSON對象
#include#include#include "cJSON.h"
int main()
{
// 創建JSON對象
cJSON *root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", "張三");
cJSON_AddNumberToObject(root, "age", 25);
cJSON *hobbyArr = cJSON_CreateArray();
cJSON_AddItemToArray(hobbyArr, cJSON_CreateString("籃球"));
cJSON_AddItemToArray(hobbyArr, cJSON_CreateString("游泳"));
cJSON_AddItemToArray(hobbyArr, cJSON_CreateString("看電影"));
cJSON_AddItemToObject(root, "hobby", hobbyArr);
// 將JSON對象轉換為字符串
char *str = cJSON_Print(root);
// 連接服務器
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in servaddr;
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(8888);
inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr);
connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
// 將JSON字符串發送給服務器
char buf[1024];
snprintf(buf, sizeof(buf), "%s\n", str);
write(sockfd, buf, strlen(buf));
// 釋放資源
cJSON_Delete(root);
free(str);
close(sockfd);
return 0;
}

在上面的代碼中,首先使用 cJSON_CreateObject 函數創建了一個JSON對象,然后使用 cJSON_AddStringToObject 和 cJSON_AddNumberToObject 函數向JSON對象中添加了 name 和 age 兩個屬性。

接著,使用 cJSON_CreateArray 函數創建了一個JSON數組,并使用 cJSON_AddItemToArray 函數向其中添加了三個字符串元素。最后,使用 cJSON_AddItemToObject 函數將數組作為 hobby 屬性添加到 JSON 對象中。

將 JSON 對象轉換為字符串后,使用網絡編程中的相關函數將字符串發送給服務端。最后,使用 cJSON_Delete 函數和 free 函數釋放資源,關閉客戶端與服務器的連接。