接下來,可以使用cJSON庫中的方法來構(gòu)建json數(shù)據(jù)。例如,假設(shè)要構(gòu)建以下json數(shù)據(jù):
{
"name": "John Smith",
"age": 30,
"isMarried": true,
"hobbies": [
"running",
"swimming",
"reading"
]
}
可以使用如下代碼來構(gòu)建:
cJSON *root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", "John Smith");
cJSON_AddNumberToObject(root, "age", 30);
cJSON_AddBoolToObject(root, "isMarried", true);
cJSON *hobbies = cJSON_CreateArray();
cJSON_AddItemToArray(hobbies, cJSON_CreateString("running"));
cJSON_AddItemToArray(hobbies, cJSON_CreateString("swimming"));
cJSON_AddItemToArray(hobbies, cJSON_CreateString("reading"));
cJSON_AddItemToObject(root, "hobbies", hobbies);
以上代碼中,通過cJSON_CreateObject()方法創(chuàng)建了一個(gè)json對象,并使用cJSON_AddXXXToObject()方法向該對象中添加數(shù)據(jù)。其中,cJSON_AddStringToObject()用于添加字符串類型數(shù)據(jù),cJSON_AddNumberToObject()用于添加數(shù)字類型數(shù)據(jù),cJSON_AddBoolToObject()用于添加布爾類型數(shù)據(jù)。
可以使用cJSON_CreateArray()方法創(chuàng)建一個(gè)json數(shù)組,并使用cJSON_AddItemToArray()方法向該數(shù)組中添加數(shù)據(jù)。
構(gòu)建完成后,可以使用如下代碼將json數(shù)據(jù)輸出到控制臺:
char *jsonStr = cJSON_Print(root);
printf("%s\n", jsonStr);
free(jsonStr);
以上代碼中,使用cJSON_Print()將構(gòu)建的json對象轉(zhuǎn)換為字符串,并輸出到控制臺。最后需要使用free()手動(dòng)釋放空間。
至此,c語言中序列化json的過程就完成了。