flutter - 我在解析 json 时在 null 上调用了“cast”方法
问题描述
我的 API 响应中有以下 json:
{
"data": [{
"orderid": "123",
"item_names": [
"item1",
"item2",
"item3",
"item4"
]
}]
}
我在飞镖中有以下模型类:
class OrderListResponse {
List<OrderListItemModel> data;
OrderListResponse({this.data});
OrderListResponse.fromJson(Map<String, dynamic> json) {
if (json['data'] != null) {
data = new List<OrderListItemModel>();
json['data'].forEach((v) {
data.add(new OrderListItemModel.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.data != null) {
data['data'] = this.data.map((v) => v.toJson()).toList();
}
return data;
}
}
class OrderListItemModel {
String id;
List<String> items;
OrderListItemModel({this.id,
this.items,
});
OrderListItemModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
items = json['item_names'].cast<String>();
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['item_names'] = this.items;
return data;
}
}
当我将在 API 中获取数据时,它给了我一个错误 The method 'cast' was called on null。我不明白为什么它会抛出这个错误。有什么解决方案吗?
解决方案
我建议你使用这个网站来转换你的 jsons
依此类推,要修复您需要更改的代码
OrderListItemModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
items = json['item_names'].cast<String>();
}
对此
OrderListItemModel.fromJson(Map<String, dynamic> json) {
id = json['orderid'];
items = json["item_names"] == null? [] : List<String>.from(json["item_names"].map((x) => x))
}
推荐阅读
- node.js - 在 mongoose/node 中为嵌套的 mongo 对象构建路由
- bash - bash while循环未终止
- python - requests.exceptions.TooManyRedirects:超过 30 个重定向
- python - 使用 Pushes Create Api with Python 将文件上传/推送到 Azure Devops Repo 时出现无效的 Json 错误
- java - 按字母顺序对字符串 ArrayList 进行排序错误 Java
- java - 一行java特定列的最大值
- ms-access - MS Access 获取数据表中的子行数
- javascript - React - 重叠 css 文件
- reactjs - 事件在 axios 拦截器内触发两次
- python - Discord 机器人加入/离开