Flutter从JSON数组生成类而没有密钥

时间:2019-05-16 19:37:29

标签: flutter

这是服务器响应的简单部分:

"people_data": {
  "user": {
    "pk": "9917615035",
    "auto_expand_chaining": false,
    "highlight_reshare_disabled": false
  },
  "status": "ok"
},
"feeds": [
  {
    "taken_at": "1555388336",
    "pk": "00000"
  }
]

如您所见feeds是一个没有密钥的json数组,我正在尝试制作feeds类来处理此数据,但我无法做到这一点

例如:

class PageInfo {
  PeopleData peopleData;
  Feeds feeds;
}

class Feeds {
  String taken_at;
  String pk;
}

Feeds所在的班级不正确

1 个答案:

答案 0 :(得分:0)

您有两个选择:

1。创建一个包装对象,该对象将接收您在此处发布的整个json。像这样:

class Feed {
  final String takenAt;
  final String pk;

  Feed(this.takenAt, this.pk);

  factory Feed.fromJson(Map<String, dynamic> json) {
    return Feed(json["taken_at"], json["pk"]);
  }
}

class FeedsList {
  final List<Feed> feeds;

  FeedsList(this.feeds);

  factory FeedsList.fromJson(Map<String, dynamic> json) {
    return FeedsList(
        List.from(json["feeds"]).map((object) => Feed.fromJson(object)));
  }
}

2。或者在解析JSON的地方执行以下操作:

List<Feed> list = List.from(json["feeds"]).map((object) => Feed.fromJson(object))