在C語言中使用JSON格式的數據是很常見的,在C語言中有很多的庫可以幫助我們快速的解析和生成JSON格式的數據。但是在實際使用中,我們有時候需要將JSON格式的數據轉換成數組,這時候該怎么做呢?下面讓我們來看看如何使用C語言將JSON格式的數據轉換成數組。
// 定義JSON字符串 char* json_str = "[1,2,3,4,5]"; // 解析JSON字符串 cJSON* root = cJSON_Parse(json_str); if (root == NULL) { printf("JSON格式錯誤!\n"); return -1; } else if (!cJSON_IsArray(root)) { printf("JSON格式不是數組!\n"); cJSON_Delete(root); return -1; } // 獲取JSON數組大小 int size = cJSON_GetArraySize(root); // 定義數組 int arr[size]; // 轉換JSON數據為數組 for (int i = 0; i< size; i++) { cJSON* item = cJSON_GetArrayItem(root, i); if (!cJSON_IsNumber(item)) { printf("JSON格式不是數字!\n"); cJSON_Delete(root); return -1; } arr[i] = item->valueint; } // 打印數組 for (int i = 0; i< size; i++) { printf("%d ", arr[i]); } // 釋放內存 cJSON_Delete(root);
上面的代碼演示了如何將JSON格式的數據轉換成數組。首先需要使用cJSON_Parse()函數解析JSON字符串,得到一個cJSON對象;然后使用cJSON_IsArray()函數判斷該對象是否是數組;接著使用cJSON_GetArraySize()函數獲取數組大??;最后使用cJSON_GetArrayItem()函數逐個獲取數組元素,并將其轉換成int類型,最終保存在數組中。