C語(yǔ)言中可以使用第三方庫(kù)cJSON創(chuàng)建多級(jí)JSON。cJSON是一個(gè)輕量級(jí)的JSON解析器,可以快速、簡(jiǎn)便地處理JSON數(shù)據(jù)。
// 定義JSON結(jié)構(gòu)體 cJSON *root, *person, *address; // 創(chuàng)建root對(duì)象 root = cJSON_CreateObject(); // 創(chuàng)建person對(duì)象并添加到root中 person = cJSON_CreateObject(); cJSON_AddItemToObject(root, "person", person); // 為person對(duì)象添加屬性name cJSON_AddStringToObject(person, "name", "Tom"); // 創(chuàng)建address對(duì)象并添加到person中 address = cJSON_CreateObject(); cJSON_AddItemToObject(person, "address", address); // 為address對(duì)象添加屬性city和street cJSON_AddStringToObject(address, "city", "Beijing"); cJSON_AddStringToObject(address, "street", "Haidian"); // 輸出JSON char *jsonStr = cJSON_Print(root); printf("%s", jsonStr);
上面的代碼創(chuàng)建了一個(gè)兩層的JSON,其中包含一個(gè)person對(duì)象和一個(gè)address對(duì)象。通過(guò)cJSON_CreateObject創(chuàng)建對(duì)象,通過(guò)cJSON_AddItemToObject向上一級(jí)對(duì)象中添加對(duì)象,通過(guò)cJSON_AddStringToObject向當(dāng)前對(duì)象中添加屬性和值。
使用cJSON可以快速地創(chuàng)建多級(jí)嵌套的JSON對(duì)象并進(jìn)行序列化和反序列化操作。