最近在開發(fā)中遇到了一個問題,需要將CJSON的list對象轉(zhuǎn)換為字符串數(shù)組,經(jīng)過查找和測試,總結(jié)出了一種比較簡便的方法,分享給大家。
首先我們需要明確一下CJSON的list對象是什么,它是一個數(shù)組,每個元素都是一個JSON對象,具有一定的層級關系。我們需要將這些對象轉(zhuǎn)換為字符串,保存在一個字符串數(shù)組中。
接下來我們看一下代碼實現(xiàn):
void json_list_to_char_array(cJSON* list, char **array) { int size = cJSON_GetArraySize(list); for (int i = 0; i< size; i++) { cJSON *item = cJSON_GetArrayItem(list, i); char *str = cJSON_PrintUnformatted(item); strcpy(array[i], str); free(str); } }
這里我們定義了一個函數(shù)叫做json_list_to_char_array,它接收兩個參數(shù),第一個參數(shù)是CJSON的list對象,第二個參數(shù)是要保存轉(zhuǎn)換后的字符串數(shù)組。
函數(shù)第一行獲取了CJSON的list對象的長度,即元素個數(shù),然后通過for循環(huán)遍歷每個元素。
在循環(huán)內(nèi)部,我們通過cJSON_GetArrayItem函數(shù)獲取list中的一個元素,然后使用cJSON_PrintUnformatted函數(shù)將這個元素轉(zhuǎn)換為字符串,最后保存到字符串數(shù)組中。
在函數(shù)末尾我們使用了free函數(shù)釋放了中間變量,不要忘記這一步,以免內(nèi)存泄漏。
使用這個函數(shù)可以將CJSON的list對象轉(zhuǎn)換為字符串數(shù)組,方便存儲和使用。希望對大家有所幫助。
上一篇vue form表單圖片
下一篇python 擴展庫導入