Flutter 颤振json#U可序列化模型错误:未处理的异常:类型';空';不是类型为';字符串';内铸
我正在尝试从Flatter中的服务器获取数据,并在我的数据模型中使用json_serializable。 我成功地获取了数据,但是当转换数据列表中的json时,我得到了以下错误:未处理的异常:类型“Null”不是类型转换中类型“String”的子类型。 我不知道怎么解决。 这是我的fetch函数Flutter 颤振json#U可序列化模型错误:未处理的异常:类型';空';不是类型为';字符串';内铸,flutter,dart,json-serializable,Flutter,Dart,Json Serializable,我正在尝试从Flatter中的服务器获取数据,并在我的数据模型中使用json_serializable。 我成功地获取了数据,但是当转换数据列表中的json时,我得到了以下错误:未处理的异常:类型“Null”不是类型转换中类型“String”的子类型。 我不知道怎么解决。 这是我的fetch函数 Future<List<Data>> getallNews() async { try { var response = await NewsAppApi.d
Future<List<Data>> getallNews() async {
try {
var response = await NewsAppApi.dio.get(ALL_NEWS);
// If the server did return a 200 OK response,
// then parse the JSON.
List parsed = response.data['data'];
List<Data> _news = [];
parsed.forEach((element) {
print(element);
Data n = Data.fromJson(element);
print(n);
_news.add(n);
});
//List<Data> _news = parsed.map((json) => Data.fromJson(json)).toList();
return _news;
} on DioError catch (e) {
throw showNetworkError(e);
}
}
感谢您的帮助您需要说明在“发布日期”和“删除日期”中收到的空值。您是否理解您发布的代码以及错误试图解释的内容
将json映射转换为类时,会发生错误。错误很可能发生在
DateTime
字段中,因为它是数据中唯一显示null
的字段,DateTime.parse()
要求值不为null。这些字段可能导致错误:
//这些字段导致了错误
最后约会时间?出版日期;
最后约会时间?deletedAt;
//其他可能导致错误的字段
要发布的最终日期时间日期;
最终日期时间创建日期;
最终日期时间更新日期;
在解析它们之前进行检查,例如使用字段datePublished
:
...
datePublished: (datePublished != null) ? DateTime.parse(datePublished) : null;
...
谢谢大家的帮助,我知道数据的解析部分发生了错误,但它没有连接到可为空的数据(由包生成的自动代码处理),而是连接到我忘记重命名数据模型中的键这一事实,例如:
@JsonKey(name: 'deleted_at')
final DateTime? deletedAt;
这就是为什么空错误标签类是如何定义的?请分享
\u$DataFromJson(json)
...
datePublished: (datePublished != null) ? DateTime.parse(datePublished) : null;
...
@JsonKey(name: 'deleted_at')
final DateTime? deletedAt;