在C語言中,要發(fā)送JSON數(shù)據(jù),我們需要先將C語言中的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為JSON格式。為此,我們可以使用第三方庫,如json-c。
接下來,我們將通過以下代碼片段演示如何使用json-c庫在C程序中發(fā)送JSON數(shù)據(jù):
#include#include #include int main() { // 創(chuàng)建JSON對象 struct json_object *jobj = json_object_new_object(); json_object *jstring = json_object_new_string("Hello World!"); json_object_object_add(jobj, "message", jstring); // 將JSON對象轉(zhuǎn)化為字符串 const char *json_str = json_object_to_json_string(jobj); // 發(fā)送JSON數(shù)據(jù) CURL *curl_handle; CURLcode res; struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Content-Type: application/json"); curl_handle = curl_easy_init(); curl_easy_setopt(curl_handle, CURLOPT_URL, "http://example.com/api"); curl_easy_setopt(curl_handle, CURLOPT_POSTFIELDS, json_str); curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, headers); res = curl_easy_perform(curl_handle); curl_slist_free_all(headers); curl_easy_cleanup(curl_handle); // 釋放JSON對象 json_object_put(jobj); return 0; }
在此代碼中,我們首先創(chuàng)建了一個(gè)名為jobj的JSON對象,并向其添加了一條名為message的字符串。接下來,我們使用json_object_to_json_string函數(shù)將jobj轉(zhuǎn)換為JSON字符串。最后,我們使用CURL庫中的curl_easy_setopt函數(shù)將JSON字符串發(fā)送到http://example.com/api。
通過使用以上代碼和json-c庫,我們可以在C語言中簡單地發(fā)送JSON數(shù)據(jù)。