首页 > 解决方案 > 试图在颤振中获取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)”。我在这里看不到任何错字问题。这里可能出了什么问题?

标签: jsonflutterrest

解决方案


工厂方法的作用类似于静态方法,但您正在使用ModelData().
试试这样:

ModelData.fromJson(json)

推荐阅读