C JSON是一個快速、可靠、輕量級的JSON解析和生成庫,它支持將JSON字符串轉換為數(shù)組,也支持將字符串數(shù)組轉換為JSON字符串。在本篇文章中,我們將介紹如何將C JSON中的數(shù)組字符串轉換為字符串數(shù)組。
// 示例代碼 #include "cjson/cJSON.h" #includeint main() { char *json_str = "[\"apple\", \"banana\", \"orange\"]"; cJSON *json = cJSON_Parse(json_str); // 解析JSON字符串 if (json == NULL) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); // 解析錯誤 return 1; } if(cJSON_IsArray(json)) // 判斷JSON對象是否是數(shù)組類型 { int size = cJSON_GetArraySize(json); // 獲取數(shù)組長度 char *str_arr[size]; // 聲明字符串數(shù)組 for(int i = 0; i< size; i++) { cJSON *item = cJSON_GetArrayItem(json, i); // 獲取數(shù)組元素 if(cJSON_IsString(item)) // 判斷元素是否為字符串類型 { str_arr[i] = cJSON_GetStringValue(item); // 獲取字符串值 printf("%s\n", str_arr[i]); } } cJSON_Delete(json); // 釋放JSON對象 } return 0; }
在上述代碼中,我們首先聲明了一個包含三個字符串元素的JSON數(shù)組字符串。然后,我們使用C JSON中的cJSON_Parse()函數(shù)將該JSON字符串解析為JSON對象。接著,我們使用cJSON_IsArray()函數(shù)判斷JSON對象是否是數(shù)組類型,獲取該數(shù)組的長度,并定義了一個相應長度的字符串數(shù)組。然后,我們使用cJSON_GetArrayItem()函數(shù)獲取數(shù)組元素,判斷元素是否為字符串類型,并使用cJSON_GetStringValue()函數(shù)獲取字符串值,并將其存儲到定義好的字符串數(shù)組中。最后,我們使用cJSON_Delete()函數(shù)釋放JSON對象。
這樣,我們就成功地將C JSON中的數(shù)組字符串轉換為了字符串數(shù)組。