在C語言中,我們可能需要將一個(gè)復(fù)雜的數(shù)據(jù)對(duì)象轉(zhuǎn)換為JSON字符串來進(jìn)行網(wǎng)絡(luò)傳輸或存儲(chǔ)。這時(shí)我們可以使用開源的
/* 示例代碼 */
#include "cJSON.h"
#includeint main() {
// 創(chuàng)建JSON對(duì)象
cJSON* root = cJSON_CreateObject();
// 添加一個(gè)字符串類型的鍵值對(duì)
cJSON_AddStringToObject(root, "name", "張三");
// 添加一個(gè)整型類型的鍵值對(duì)
cJSON_AddNumberToObject(root, "age", 18);
// 創(chuàng)建一個(gè)嵌套的JSON對(duì)象
cJSON* address = cJSON_CreateObject();
cJSON_AddStringToObject(address, "city", "北京");
cJSON_AddStringToObject(address, "street", "西二旗");
cJSON_AddItemToObject(root, "address", address);
// 創(chuàng)建一個(gè)數(shù)組類型的鍵值對(duì)
cJSON* skills = cJSON_CreateArray();
cJSON_AddItemToArray(skills, cJSON_CreateString("C語言"));
cJSON_AddItemToArray(skills, cJSON_CreateString("Java"));
cJSON_AddItemToObject(root, "skills", skills);
// 將JSON對(duì)象轉(zhuǎn)換為字符串
char* json_string = cJSON_Print(root);
printf("%s\n", json_string);
// 釋放JSON對(duì)象和字符串內(nèi)存
cJSON_Delete(root);
free(json_string);
return 0;
}
運(yùn)行上述代碼會(huì)輸出以下JSON字符串:
{
"name": "張三",
"age": 18,
"address": {
"city": "北京",
"street": "西二旗"
},
"skills": [
"C語言",
"Java"
]
}
可以看出