C語言是一種常用的編程語言,而JSON則是一種輕量級數(shù)據(jù)交換格式。在C語言中,我們可以使用第三方庫來支持JSON數(shù)據(jù)的提交及解析,其中最常用的便是cJSON。
#include “cJSON.h”
cJSON提供了一個方便易用的API來操作JSON數(shù)據(jù)。要提交一個JSON數(shù)據(jù),我們首先需要創(chuàng)建一個cJSON對象:
cJSON *root = cJSON_CreateObject();
這個cJSON對象就是一個JSON數(shù)據(jù)的根節(jié)點,我們可以往里面添加各種類型的數(shù)據(jù),例如字符串、數(shù)字、布爾等等。
以添加一個字符串為例:
cJSON_AddStringToObject(root, “name”, “張三”);
其中,第一個參數(shù)為JSON數(shù)據(jù)的根節(jié)點,第二個參數(shù)為鍵名,第三個參數(shù)為值。
最后,我們需要將cJSON對象轉(zhuǎn)換成JSON字符串,然后使用HTTP協(xié)議將數(shù)據(jù)提交到服務(wù)器:
char *jsonStr = cJSON_PrintUnformatted(root); //使用HTTP協(xié)議將jsonStr提交到服務(wù)器
代碼示例:
#include “cJSON.h” #include “http.h” int main() { //創(chuàng)建一個JSON數(shù)據(jù) cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, “name”, “張三”); cJSON_AddNumberToObject(root, “age”, 18); cJSON_AddBoolToObject(root, “isStudent”, true); //將JSON數(shù)據(jù)轉(zhuǎn)換成字符串 char *jsonStr = cJSON_PrintUnformatted(root); //提交JSON數(shù)據(jù) HttpRequest req; req.url = “http://www.example.com/api/user”; req.method = HTTP_POST; req.contentType = “application/json”; req.content = jsonStr; req.contentLength = strlen(jsonStr); HttpResponse res = httpSendRequest(&req); printf(“%d %s”, res.statusCode, res.body); return 0; }
這段代碼使用了HTTP協(xié)議向服務(wù)器提交了一個包含姓名、年齡、是否為學(xué)生的JSON數(shù)據(jù)。