首页 > 解决方案 > Flutter从没有键的json数组生成类

问题描述

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

"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这里的课程不正确

标签: flutter

解决方案


您有两种选择:

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))

推荐阅读