在C語言中,我們可以使用cJSON庫來對JSON數(shù)據(jù)進行解析、生成和處理。當我們處理JSON數(shù)組時,我們有一個很常見的需求,就是將一個JSON數(shù)組轉(zhuǎn)換為多個JSON對象數(shù)組。
下面是使用cJSON庫實現(xiàn)這個需求的示例代碼:
cJSON *root = cJSON_Parse(json_str); // 解析JSON字符串為cJSON對象 cJSON *array = cJSON_GetObjectItem(root, "data"); // 獲取JSON數(shù)組對象 // 遍歷JSON數(shù)組,將每個元素轉(zhuǎn)換為JSON對象并加入對象數(shù)組 cJSON *obj_array[cJSON_GetArraySize(array)]; int i = 0; cJSON_ArrayForEach(obj, array) { cJSON *obj_copy = cJSON_Duplicate(obj, true); // 復制JSON對象 obj_array[i++] = obj_copy; } // 釋放cJSON對象 cJSON_Delete(root);
首先,我們需要解析JSON字符串,獲取JSON數(shù)組對象。然后,我們遍歷JSON數(shù)組,將每個元素復制為一個新的JSON對象,并加入對象數(shù)組中。最后,我們需要及時釋放cJSON對象,避免內(nèi)存泄漏。
以上就是將一個JSON數(shù)組轉(zhuǎn)換為多個JSON對象數(shù)組的示例代碼,適用于在C語言中使用cJSON庫進行JSON數(shù)據(jù)處理的場景。