【发布时间】:2021-08-11 06:49:22
【问题描述】:
我正在尝试从此 url-“https://jsonplaceholder.typicode.com/photos”获取 json 数据。我正在关注这个颤振食谱教程 - “https://flutter.dev/docs/cookbook/networking/background-parsing”
我的模型类看起来像这样-
class ModelData {
ModelData({
this.albumId,
this.id,
this.title,
this.url,
this.thumbnailUrl,
});
final int albumId;
final int id;
final String title;
final String url;
final String thumbnailUrl;
factory ModelData.fromJson(Map<String, dynamic> json) => ModelData(
albumId: json["albumId"] as int,
id: json["id"] as int,
title: json["title"] as String,
url: json["url"] as String,
thumbnailUrl: json["thumbnailUrl"] as String,
);
}
我的 parseData 方法看起来像这样-
List<ModelData> parseData(String responseBody) {
final parsed = jsonDecode(responseBody).cast<Map<String, dynamic>>();
return parsed
.map<ModelData>((json) => ModelData().fromJson(json)).toList();
}
问题出在这个方法的最后一行。它说“错误:没有为类型'ModelData'定义方法'fromJson'。([flutter_rest] lib\main.dart:61的undefined_method)”。我在这里没有看到任何错字问题。这里可能出了什么问题?
【问题讨论】:
-
ModelData().fromJson(json) 将其更改为 ModelData.fromJson(json)。工厂方法像静态函数一样工作