在C語言中,JSON多層嵌套數組的反序列化操作可以使用第三方庫cJSON實現。
cJSON* root = cJSON_Parse(json_string); if (root) { cJSON* array = cJSON_GetObjectItem(root, "key"); // 獲取鍵名 if (array) { int size = cJSON_GetArraySize(array); // 獲取數組大小 for (int i = 0; i< size; i++) { cJSON* subarray = cJSON_GetArrayItem(array, i); // 獲取子數組 if (subarray) { int subsize = cJSON_GetArraySize(subarray); for (int j = 0; j< subsize; j++) { cJSON* value = cJSON_GetArrayItem(subarray, j); // 獲取值 if (value) { // 對值進行處理 } } } } } cJSON_Delete(root); }
上述代碼先使用cJSON_Parse函數將json字符串解析為cJSON結構體,然后使用cJSON_GetObjectItem函數根據鍵名獲取數組,接下來使用cJSON_GetArraySize函數獲取數組大小,循環遍歷數組中各個子數組,再使用cJSON_GetArraySize函數獲取子數組的大小,繼續循環遍歷獲取值,最后使用cJSON_Delete函數釋放內存。
在處理多層嵌套數組的過程中,需要注意數組的層數和每個數組的大小不能超出預設范圍,否則會導致內存泄漏和程序崩潰。