我使用dio,retrofit来管理API连接。生成与注解和build_runner相关的代码。
我的问题:我在响应中收到一个数据列表。生成的代码与我需要的代码不同。生成的代码中有一个部分包含此文本。
final _result = await _dio.fetch<Map<String, dynamic>>(_setStreamType<
而我需要的代码是这样的。
final _result = await _dio.fetch<List<dynamic>>(_setStreamType<
- 当我手动编辑 Map〈String,dynamic〉 到 List〈dynamic〉 时,我的代码工作正常,我需要像注解等自动做的东西将解决这个问题。
这是我的代码片段:
@RestApi(baseUrl: BuildConfig.SERVER)
abstract class GetApiService {
factory GetApiService(Dio dio,{String baseUrl}) = _GetApiService;
@GET(MainApi.baseData)
@FormUrlEncoded()
Future<HttpResponse<ResponseList>> getDashboardHomeResponse();
}
收到我的回应范例:
[
{
'key1':'value1',
'key2':'value2',
'key3':'value3'
}
]
1条答案
按热度按时间2j4z5cfb1#
我解决问题。
你给予http响应的数据类型必须是List类型。所以你的dio响应是 List〈dynamic〉。
否则,响应生成器将返回一个 Map〈String,dynamic〉 类型。
我的错误在于将数据类型传递给HttpResponse。
我传递给HttpResponse的类模型有一个列表类型变量,但是我必须单独创建类模型。
这是我编辑的代码片段: