json - 试图在颤振中获取json数据
问题描述
我正在尝试从此 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()
.
试试这样:
ModelData.fromJson(json)
推荐阅读
- python - 溢出错误:(34,'数值结果超出范围')
- javascript - 编辑一组 html 按钮
- git - get rebase --interactive 只显示'noop'并合并所有提交
- amazon-web-services - S3 使用 terraform 存储双向复制
- firebase - 如何从下到上对数据进行排序以在firebase rtdb中以最新的优先方式实现分页?
- sql-server - 使用 ROW_NUMBER() OVER(PARTITION BY... ORDER BY 的三种不同操作修复连接导致查询出现 NULL
- java - 在 Maven 仓库中找不到 spring-boot-thin-layout
- c# - 剑碰撞时间
- content-management-system - 内容丰富:可以在同一组项目中允许引用和本地字段类型吗?
- javascript - 停止功能多次加载项目