Flutter 颤振Dio返回物体
我是个新手,来自.NET世界 在.NET中,我有类似于Flutter 颤振Dio返回物体,flutter,dart,json-deserialization,dio,Flutter,Dart,Json Deserialization,Dio,我是个新手,来自.NET世界 在.NET中,我有类似于httpclient.GetFromJsonAsync的东西来执行GET并将其反序列化到User对象。 在flatter中,我使用了Dio,发现它们有相似的外观方法,get。但是,即使我使用get或get,它也总是抛出运行时错误,即无法将List转换为List或Map转换为用户,尽管代码已成功编译 final List<User> response = await Dio().get<List<User>>
httpclient.GetFromJsonAsync
的东西来执行GET并将其反序列化到User
对象。
在flatter中,我使用了Dio,发现它们有相似的外观方法,get
。但是,即使我使用get
或get
,它也总是抛出运行时错误,即无法将List
转换为List
或Map
转换为用户
,尽管代码已成功编译
final List<User> response = await Dio().get<List<User>>('urlThatReturnListOfUser');
final List response=wait Dio().get('urlthareturnlistofuser');
是否有更好的方法或包来反序列化动态/映射到对象
到目前为止,我发现最好的方法是使用Json_Serializable,但即使如此,我仍然需要编写类似的东西
final List<User> weathers = (response.data as List)
.map((e) => User.fromJson(e as Map<String, dynamic>))
.toList();
final List weathers=(response.data作为列表)
.map((e)=>User.fromJson(e作为map))
.toList();
每次我调用API时。或者这是我目前最好的选择?还是我用Dio错了
这样的库需要使用运行时反射,这在颤振中是禁用的。运行时反射会干扰树抖动,Dart已经支持了相当长的时间。通过树抖动,您可以从发布版本中“抖动”未使用的代码。这大大优化了应用程序的大小
由于反射使得默认情况下所有代码都隐式使用,因此很难进行树抖动。这些工具无法知道运行时哪些部分未使用,因此很难去除冗余代码。使用反射时,无法轻松优化应用程序大小
尽管不能将运行时反射与Flutter一起使用,但有些库提供了类似的易于使用的API,但它们基于代码生成。代码生成库一节将更详细地介绍这种方法
不幸的是,您目前正在使用最准确的反序列化方法
这样的库需要使用运行时反射,这在颤振中是禁用的。运行时反射会干扰树抖动,Dart已经支持了相当长的时间。通过树抖动,您可以从发布版本中“抖动”未使用的代码。这大大优化了应用程序的大小
由于反射使得默认情况下所有代码都隐式使用,因此很难进行树抖动。这些工具无法知道运行时哪些部分未使用,因此很难去除冗余代码。使用反射时,无法轻松优化应用程序大小
尽管不能将运行时反射与Flutter一起使用,但有些库提供了类似的易于使用的API,但它们基于代码生成。代码生成库一节将更详细地介绍这种方法
不幸的是,您目前正在使用最准确的反序列化方法