JSON (JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,常用于Web應(yīng)用程序中數(shù)據(jù)的傳輸。在C語言中上傳JSON數(shù)據(jù)是非常常見的操作,下面介紹一下如何在C語言中上傳JSON數(shù)據(jù)。
#include <stdio.h> #include <stdlib.h> #include <curl/curl.h> #include <cjson/cJSON.h> int main(){ CURL *curl; CURLcode res; cJSON *root; char *json_data; int json_size; char *url = "http://example.com/upload"; /* 創(chuàng)建根節(jié)點 */ root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "John"); cJSON_AddNumberToObject(root, "age", 25); /* 將JSON轉(zhuǎn)為字符串,并獲取字符串長度 */ json_data = cJSON_PrintUnformatted(root); json_size = strlen(json_data); /* 初始化curl參數(shù) */ curl = curl_easy_init(); if(curl) { /* 設(shè)置url */ curl_easy_setopt(curl, CURLOPT_URL, url); /* 設(shè)置HTTP POST */ curl_easy_setopt(curl, CURLOPT_POST, 1L); /* 設(shè)置JSON數(shù)據(jù) */ curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, json_size); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_data); /* 發(fā)送HTTP請求 */ res = curl_easy_perform(curl); /* 釋放curl資源 */ curl_easy_cleanup(curl); } /* 釋放cJSON資源 */ free(json_data); cJSON_Delete(root); return 0; }
在代碼中,我們首先需要使用cJSON庫創(chuàng)建一個JSON對象,并向其中添加相應(yīng)的屬性和值。然后用cJSON_PrintUnformatted函數(shù)將JSON對象轉(zhuǎn)換為字符串,獲取字符串長度,最后使用libcurl庫發(fā)送HTTP請求,并將JSON數(shù)據(jù)作為POST參數(shù)上傳到目標URL。
總的來說,在C語言中上傳JSON數(shù)據(jù)是非常簡單的,只需要使用cJSON庫與libcurl庫就能夠?qū)崿F(xiàn)。