C語言是一種功能豐富的編程語言,可以輕松地處理各種數據類型。現在,許多應用程序需要將JSON數據發送到其他程序或服務器。在C語言中,可以使用標準C庫來發送JSON數據。下面是如何在C語言中發送JSON數據的示例。
#include <stdio.h> #include <curl/curl.h> #include <jansson.h> int main(void) { CURL *curl; CURLcode res; char *jsonData; json_t *root; json_error_t error; // 創建json對象 root = json_pack("{s:[{s:s,s:s,s:i},{s:s,s:s,s:i}]}", "students", "name", "小明", "address", "上海市浦東新區張江", "age", 20, "name", "小紅", "address", "廣州市天河區珠江新城", "age", 22); // 將json對象轉為json字符串 jsonData = json_dumps(root, JSON_ENCODE_ANY | JSON_INDENT(4)); // 初始化curl curl = curl_easy_init(); if(curl) { // 設置請求的URL curl_easy_setopt(curl, CURLOPT_URL, "http://localhost:8888/"); // 設置請求方式為post curl_easy_setopt(curl, CURLOPT_POST, 1L); // 設置請求的body體 curl_easy_setopt(curl, CURLOPT_POSTFIELDS, jsonData); // 指定請求的Content-Type curl_easy_setopt(curl, CURLOPT_HTTPHEADER, curl_slist_append(NULL, "Content-Type: application/json")); // 執行請求 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); } // 釋放json字符串 free(jsonData); // 釋放json對象 json_decref(root); return 0; }
在上面的代碼中,我們使用了兩個庫:C語言的libcURL庫和Javascript的json庫(json-c)來發送JSON數據。 首先,我們使用json庫來創建JSON對象。然后,我們將JSON對象轉換為JSON字符串。最后,我們使用libcURL庫將JSON數據作為請求的正文發送到指定的URL。
在C語言中,發送JSON數據非常簡單。使用上述代碼,您可以輕松地將JSON數據發送到其他程序或服務器。