【问题标题】:Trying to fetch json data in flutter试图在颤振中获取json数据
【发布时间】: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)。工厂方法像静态函数一样工作

标签: json flutter rest


【解决方案1】:

工厂方法的作用类似于静态方法,但您使用 ModelData() 初始化类。
试试这样:

ModelData.fromJson(json)

【讨论】:

    猜你喜欢
    • 2021-03-26
    • 2019-04-20
    • 2020-11-17
    • 2021-03-17
    • 2021-03-21
    • 2020-12-12
    • 2021-01-26
    • 2020-12-16
    • 2020-05-02
    相关资源
    最近更新 更多