JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。它易于閱讀和編寫,而且可以被多種編程語言解析和生成。在 C 語言中,我們可以使用第三方庫 cJSON 來解析和生成 JSON 數(shù)據(jù),它提供了簡單易用的 API。
下面我們來演示如何在 C 語言中發(fā)送 JSON 格式的數(shù)據(jù)。首先我們需要創(chuàng)建一個 cJSON 對象,并添加一些鍵值對:
cJSON* root = cJSON_CreateObject(); // 創(chuàng)建 cJSON 對象
// 添加鍵值對
cJSON_AddStringToObject(root, "name", "Jack");
cJSON_AddNumberToObject(root, "age", 28);
cJSON_AddStringToObject(root, "email", "jack@example.com");
接著,我們可以將 cJSON 對象轉(zhuǎn)換成字符串格式:
char* json_str = cJSON_Print(root);
現(xiàn)在我們可以將 json_str 發(fā)送到服務(wù)器。例如,我們可以使用 libcurl 進行請求發(fā)送:
CURL* curl = curl_easy_init();
// 設(shè)置請求 URL 和請求頭
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api/user");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, "Content-Type: application/json");
// 設(shè)置請求體
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_str);
// 執(zhí)行請求
CURLcode res = curl_easy_perform(curl);
最后別忘了釋放 cJSON 對象和 json_str 內(nèi)存:
cJSON_Delete(root);
free(json_str);