JSON是目前比較流行的一種數(shù)據(jù)交換格式。C語(yǔ)言是一種常見(jiàn)的編程語(yǔ)言,也支持使用JSON格式發(fā)送數(shù)據(jù)。本文將介紹如何在C語(yǔ)言中使用JSON發(fā)送數(shù)據(jù)。
首先,我們需要使用JSON庫(kù)。目前比較常用的JSON庫(kù)包括cJSON、json-c等。這里我們以cJSON庫(kù)為例。
#include <stdio.h> #include <cJSON.h> int main() { // 創(chuàng)建一個(gè)空對(duì)象 cJSON *root = cJSON_CreateObject(); // 添加屬性 cJSON_AddStringToObject(root, "name", "json"); cJSON_AddNumberToObject(root, "age", 10); // 生成JSON串 char *json_str = cJSON_Print(root); printf("%s\n", json_str); // 釋放資源 cJSON_Delete(root); free(json_str); return 0; }
上述代碼中,我們首先創(chuàng)建了一個(gè)空對(duì)象root,然后使用cJSON_AddStringToObject和cJSON_AddNumberToObject函數(shù)向root中添加屬性。最后使用cJSON_Print函數(shù)生成JSON串并打印輸出。在釋放資源時(shí),需要使用cJSON_Delete函數(shù)釋放root對(duì)象,同時(shí)需要使用free函數(shù)釋放JSON串內(nèi)存。
除了創(chuàng)建JSON對(duì)象,我們還可以使用cJSON_Parse函數(shù)將JSON串解析成JSON對(duì)象。
#include <stdio.h> #include <cJSON.h> int main() { // JSON串 char *json_str = "{\"name\":\"json\",\"age\":10}"; // 解析JSON串 cJSON *root = cJSON_Parse(json_str); // 獲取屬性 cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); // 打印輸出 printf("name: %s\n", name->valuestring); printf("age: %d\n", age->valueint); // 釋放資源 cJSON_Delete(root); return 0; }
在上述代碼中,我們首先定義了一個(gè)JSON串json_str,然后使用cJSON_Parse函數(shù)解析成JSON對(duì)象root。通過(guò)cJSON_GetObjectItem函數(shù)獲取屬性name和age,最后打印輸出相關(guān)信息。在釋放資源時(shí),只需要使用cJSON_Delete函數(shù)釋放root對(duì)象即可。
總之,在C語(yǔ)言中使用JSON發(fā)送數(shù)據(jù),我們需要先引入JSON庫(kù),然后使用相關(guān)函數(shù)創(chuàng)建JSON對(duì)象或解析JSON串成對(duì)象,最后將其轉(zhuǎn)換成JSON串發(fā)送即可。