左晓为主开发手持机充值管理机
generallibrary/src/main/java/com/dayu/general/net/ApiManager.kt
@@ -159,13 +159,33 @@
                        }
                        is List<*> -> {
                            try {
                                @Suppress("UNCHECKED_CAST")
                                response.content = MyJsonParser.getListByJson(
                                    MyJsonParser.getJsonbyList(content),
                                    tClass
                                ) as T
                                // 直接处理List类型的content,不需要重新解析
                                when {
                                    // 如果目标类型是List的子类(如PaymentMethodListResponse),直接转换
                                    List::class.java.isAssignableFrom(tClass) -> {
                                        @Suppress("UNCHECKED_CAST")
                                        response.content = content as T
                                    }
                                    // 如果content是Map列表,尝试转换为目标对象列表
                                    content.isNotEmpty() && content[0] is Map<*, *> -> {
                                        val jsonData = MyJsonParser.getJsonbyList(content)
                                        @Suppress("UNCHECKED_CAST")
                                        response.content = MyJsonParser.getListByJson(jsonData, tClass) as T
                                    }
                                    else -> {
                                        @Suppress("UNCHECKED_CAST")
                                        response.content = content as T
                                    }
                                }
                            } catch (e: Exception) {
                                Log.e(TAG, "Error parsing list content", e)
                                // 如果解析失败,尝试直接转换
                                try {
                                    @Suppress("UNCHECKED_CAST")
                                    response.content = content as T
                                } catch (e2: Exception) {
                                    Log.e(TAG, "Failed to cast content directly", e2)
                                }
                            }
                        }
                        is Int, is String, is Boolean -> {