發送JSON是C語言網絡編程中的一個重要操作之一,使用JSON可以方便地進行數據傳輸和解析。在C語言中,我們可以使用cJSON庫來生成和解析JSON數據。
連接到服務器
int sockfd = socket(AF_INET, SOCK_STREAM, 0); ... struct sockaddr_in servaddr; bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(PORT); inet_pton(AF_INET, SERVERIP, &servaddr.sin_addr); ... connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
生成JSON數據
cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 18); cJSON_AddBoolToObject(root, "isStudent", true); char *jsonStr = cJSON_Print(root); cJSON_Delete(root); ... send(sockfd, jsonStr, strlen(jsonStr), 0);
接收JSON數據
char recvBuf[MAXLINE]; int n = recv(sockfd, recvBuf, MAXLINE, 0); recvBuf[n] = '\0'; cJSON *root = cJSON_Parse(recvBuf); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *isStudent = cJSON_GetObjectItem(root, "isStudent"); printf("name: %s, age: %d, isStudent: %d\n", name->valuestring, age->valueint, isStudent->valueint); cJSON_Delete(root);
發送和接收JSON數據是網絡編程中的一項基本操作,掌握了這個技能可以讓我們更方便地進行數據交互。
上一篇c 取json
下一篇gson對象為json