C socket 是一種用于網絡編程的標準工具。它使用客戶端和服務器之間的套接字通信實現網絡應用和通信。JSON(JavaScript 對象表示法) 是一種輕量級的數據交換格式,它易于閱讀和書寫。在 C socket 中讀取 JSON 數據可以通過以下步驟實現:
// 創建 TCP 連接 int sockfd = socket(AF_INET, SOCK_STREAM, 0); // 連接服務器 struct sockaddr_in serv_addr; serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(port); inet_pton(AF_INET, ip, &serv_addr.sin_addr); connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); // 發送請求 char request[1024] = "GET /data.json HTTP/1.1\r\nHost: example.com\r\n\r\n"; send(sockfd, request, strlen(request), 0); // 讀取響應 char response[1024]; int numbytes = recv(sockfd, response, sizeof(response) - 1, 0); response[numbytes] = '\0'; // 解析 JSON json_object *json = json_tokener_parse(response);
首先,我們創建一個 TCP 連接并連接到服務器。然后,我們發送請求并讀取響應。最后,我們使用 json_tokener_parse 函數將響應轉換為 JSON 對象。
JSON 對象可以使用 json_object_get 函數訪問其字段:
// 獲取 JSON 對象中的字段 json_object *name = json_object_get(json, "name"); json_object *age = json_object_get(json, "age"); // 將字段轉換為字符串和整數 const char *name_str = json_object_get_string(name); int age_int = json_object_get_int(age);
在 C socket 中讀取 JSON 數據需要遵循標準的網絡編程協議并使用適當的 JSON 解析程序。這些步驟將允許我們輕松地獲取并操作 JSON 數據。