在 Web 應用程序開發中,JSON 是非常常見的數據格式。C 語言也支持 JSON 數據的發送和接收。下面是一些使用 C 語言發送 JSON 數據的示例。
// 首先需要引入相關的頭文件 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <curl/curl.h> #include <jansson.h> // 發送 JSON 數據的函數 void send_json_data(char* url, char* json_data) { CURL* curl; CURLcode res; // 初始化 curl curl = curl_easy_init(); if(curl) { struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Content-Type: application/json"); // 設置請求的 URL curl_easy_setopt(curl, CURLOPT_URL, url); // 設置請求的頭部 curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); // 設置請求的數據 curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_data); // 發送請求 res = curl_easy_perform(curl); if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); // 清理 curl curl_easy_cleanup(curl); } }
上述代碼中,我們使用了 libcurl 庫來發送 HTTP 請求。同時,我們還使用了 jansson 庫來處理 JSON 數據。下面是一些使用 jansson 庫處理 JSON 數據的示例。
// 創建 JSON 對象 json_t *root = json_object(); // 添加屬性 json_object_set_new(root, "name", json_string("Tom")); json_object_set_new(root, "age", json_integer(20)); // 轉換為 JSON 字符串 char* json_str = json_dumps(root, JSON_INDENT(4)); // 發送 JSON 數據 send_json_data("http://example.com/api", json_str); // 釋放內存 free(json_str); json_decref(root);
在上面的代碼中,我們首先創建了一個 JSON 對象,并添加了一些屬性。然后,我們將 JSON 對象轉換為字符串,并發送給了一個 API。最后,我們釋放了內存。
使用 C 語言發送 JSON 數據是一項非常實用的技能。在實際的項目中,我們經常需要使用 JSON 數據來進行數據交換。希望本文能對你有所幫助。