网络服务器返回以下结果:
[
{
"id": 1,
"user_id": 10,
"title": "xxxxxxx",
"description": "xxxx",
"type": "post",
"featured_images": "",
"slug": "xxxxxxxxx",
"lang": "xx",
"visit": 0,
"click": 0,
"state": 1,
"created_at": "xxxxx",
"updated_at": "xxxxx",
"categories": [
{
"id": 9,
"title": "xxxx",
"lang": "fa",
"parent": 0,
"click": 0,
"image": "",
"created_at": "xxxxx",
"updated_at": "xxxx",
"pivot": {
"contents_id": 1,
"content_categories_id": 9
}
}
]
}
]
我让这个结构类来解析它
part 'contents_model.g.dart';
@JsonSerializable(nullable: false)
class ContentsModel {
int id;
@JsonKey(name: 'post_id')
int postId;
String title;
String description;
String type;
@JsonKey(name: 'featured_images')
String featuredImages;
String slug;
String lang;
int visit;
int click;
int state;
@JsonKey(name: 'createdAt')
String createdAt;
@JsonKey(name: 'updatedAt')
String updatedAt;
@JsonKey(name:'categories')
CategoriesModel categories;
ContentsModel(this.id, this.postId, this.title, this.description, this.type, this.featuredImages, this.slug, this.lang, this.visit, this.click, this.state, this.createdAt, this.updatedAt, this.categories);
factory ContentsModel.fromJson(Map<String,dynamic> json)=>_$ContentsModelFromJson(json);
Map<String,dynamic> toJson()=>_$ContentsModelToJson(this);
}
part 'categories_model.g.dart';
@JsonSerializable(nullable: true)
class CategoriesModel {
int id;
String title;
String lang;
int parent;
int click;
String image;
@JsonKey(name: 'created_at')
String createdAt;
@JsonKey(name: 'updated_at')
String updatedAt;
CategoriesModel(this.id, this.title, this.lang, this.parent, this.click, this.image, this.createdAt, this.updatedAt);
factory CategoriesModel.fromJson(Map<String,dynamic> json)=>_$CategoriesModelFromJson(json);
Map<String,dynamic> toJson()=>_$CategoriesModelToJson(this);
}
现在,当我成功从服务器获取数据时,我将无法返回该数据,例如:
Future<List<ContentsModel>> getContents() async {
final response = await http.get(Constants.getContents);
if (response.statusCode == 200) {
final responseString = jsonDecode(response.body);
try {
List<ContentsModel> responses =
responseString.map((j) =>
ContentsModel.fromJson(j)).toList();
return responses;
}catch(error){
print('Error: $error');
return null;
}
} else {
throw Exception('error fetche contents');
}
}
对于这一行代码:
return responseString.map<List<ContentsModel>>((json) => ContentsModel.fromJson(json)).toList();
我收到此错误:
“列表”类型不是“地图”类型的子类型 强制转换
答案 0 :(得分:0)