【问题标题】:Do you need to Map a Factory for every value in a JSON or can grab only the values I want?您是否需要为 JSON 中的每个值映射一个工厂,还是只能获取我想要的值?
【发布时间】:2021-09-12 01:50:52
【问题描述】:

所以我正在研究 Dart & Flutter 的 Codelab。 https://flutter.dev/docs/cookbook/networking/fetch-data

来自https://jsonplaceholder.typicode.com/albums/1

class Album {
  final int userId;
  final int id;
  final String title;

  Album({
    required this.userId,
    required this.id,
    required this.title,
  });

  factory Album.fromJson(Map<String, dynamic> json) {
    return Album(
      userId: json['userId'],
      id: json['id'],
      title: json['title'],
    );
  }
}

如果我只想要 userId,我可以直接省略它吗?

我可以选择我想从 jsonplaceholder 获取哪些字段/值吗?

【问题讨论】:

  • 是的,您可以从中创建自己选择的模态。

标签: json flutter api dart serialization


【解决方案1】:

是的,您可以忽略 json 参数中的值。请记住,例如,如果您想忽略 title,该类仍然有一个 title 字段。您必须以某种方式对此进行解释。您可以从类中完全删除 title 字段,或者将该字段更改为可为空。

【讨论】:

  • 优秀。我有一个更大的 JSON 需要读取,但我只需要其中的几个值/字段。我应该能够抓住我想要的几个?
  • 是的,忽略尽可能多的字段。
  • 一个好的做法是创建一个特定的方法来执行此操作。保留 toJson 代表您的模型,但在您的模型类内部或外部(更好)创建另一个函数来创建自定义 JSON。
  • @DanielFarina 好的,我将探讨这个想法。谢谢。
猜你喜欢
  • 2011-03-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多