在 C 語(yǔ)言中,要傳遞 JSON 格式的數(shù)據(jù),可以通過(guò)第三方庫(kù)來(lái)進(jìn)行解析和構(gòu)建。其中一個(gè)比較常用的庫(kù)是 cJSON。
#include <stdio.h> #include <cJSON.h> int main() { // 創(chuàng)建一個(gè) JSON 對(duì)象 cJSON *json = cJSON_CreateObject(); // 往 JSON 對(duì)象里添加字段和值 cJSON_AddStringToObject(json, "name", "張三"); cJSON_AddNumberToObject(json, "age", 20); // 將 JSON 對(duì)象轉(zhuǎn)為字符串 char *json_str = cJSON_Print(json); printf("%s\n", json_str); // 釋放內(nèi)存 cJSON_Delete(json); free(json_str); return 0; }
上述代碼演示了如何創(chuàng)建一個(gè) JSON 對(duì)象,并往里添加字段和值。最后使用 cJSON_Print 函數(shù)將 JSON 對(duì)象轉(zhuǎn)為字符串輸出。
如果要從外部傳入 JSON 格式的數(shù)據(jù),可以使用 cJSON_Parse 函數(shù)將字符串轉(zhuǎn)為 JSON 對(duì)象。
char *json_str = "{\"name\":\"張三\",\"age\":20}"; cJSON *json = cJSON_Parse(json_str); if (json != NULL) { // 從 JSON 對(duì)象中獲取字段和值 cJSON *name = cJSON_GetObjectItem(json, "name"); cJSON *age = cJSON_GetObjectItem(json, "age"); printf("姓名:%s\n", name->valuestring); printf("年齡:%d\n", age->valueint); // 釋放內(nèi)存 cJSON_Delete(json); }
上述代碼演示了如何將 JSON 格式的字符串轉(zhuǎn)為 JSON 對(duì)象,并從中獲取字段和值。
總結(jié)來(lái)說(shuō),要在 C 語(yǔ)言中傳遞 JSON 格式的數(shù)據(jù),需要使用第三方庫(kù)來(lái)進(jìn)行解析和構(gòu)建。其中 cJSON 庫(kù)是一個(gè)比較常用的選擇,可以通過(guò) cJSON_CreateObject、cJSON_AddStringToObject、cJSON_AddNumberToObject 等函數(shù)來(lái)創(chuàng)建和往 JSON 對(duì)象里添加字段和值,通過(guò) cJSON_Print 函數(shù)將 JSON 對(duì)象轉(zhuǎn)為字符串輸出。要從外部傳入 JSON 格式的數(shù)據(jù),可以使用 cJSON_Parse 函數(shù)將字符串轉(zhuǎn)為 JSON 對(duì)象,然后通過(guò) cJSON_GetObjectItem 函數(shù)來(lái)獲取字段和值。