在實(shí)際應(yīng)用中,我們有時(shí)候需要將數(shù)據(jù)以 JSON 形式返回。C 語(yǔ)言內(nèi)置的 JSON 庫(kù) cJSON 可以方便地實(shí)現(xiàn)這一功能。通常來(lái)說(shuō),cJSON_CreateArray 函數(shù)用于創(chuàng)建一個(gè) JSON 數(shù)組,返回的節(jié)點(diǎn)類型為 cJSON_Array,但是有時(shí)候我們需要返回一個(gè) JSON 對(duì)象。
返回 JSON 對(duì)象的方法非常簡(jiǎn)單,只需要使用 cJSON_CreateObject 函數(shù)創(chuàng)建一個(gè) cJSON 對(duì)象節(jié)點(diǎn),然后向其中添加鍵值對(duì)即可。
cJSON *root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", "張三");
cJSON_AddNumberToObject(root, "age", 18);
cJSON_AddStringToObject(root, "gender", "男");
char *jsonStr = cJSON_Print(root);
在上面的代碼中,首先創(chuàng)建一個(gè) cJSON 對(duì)象節(jié)點(diǎn) root,然后通過(guò) cJSON_AddStringToObject 和 cJSON_AddNumberToObject 向其中添加鍵值對(duì),最后通過(guò) cJSON_Print 函數(shù)將 cJSON 對(duì)象節(jié)點(diǎn)轉(zhuǎn)換為 JSON 字符串。
需要注意的是,由于這里并沒(méi)有使用 cJSON_CreateArray 函數(shù)創(chuàng)建一個(gè) JSON 數(shù)組節(jié)點(diǎn),因此返回的 JSON 字符串是一個(gè) JSON 對(duì)象而不是一個(gè) JSON 數(shù)組。
總之,通過(guò) cJSON_CreateObject 函數(shù)創(chuàng)建 cJSON 對(duì)象節(jié)點(diǎn),并添加鍵值對(duì),就可以輕松地返回一個(gè) JSON 對(duì)象,而不是一個(gè) JSON 數(shù)組。