我有一个json,它作为List返回 . 我试图解析它,但我得到一个错误命名
_InternalLinkedHashMap'不是'List'类型的子类型 . 这是我的代码 -
List data = json.decode(response.body) as List;
var newsPageViewResult = data.map((i) => new NewsList.fromJson(i)).toList();
和我的json模型类
class NewsList {
final List<News> news;
NewsList({
this.news,
});
factory NewsList.fromJson(List<dynamic> parsedJson) {
List<News> news = new List<News>();
news = parsedJson.map((i)=>News.fromJson(i)).toList();
return new NewsList(
news: news
);
}
}
class News{
final String status;
final String type;
News({
this.status,
this.type
}) ;
factory News.fromJson(Map<String, dynamic> json){
return new News(
status: json['status'],
type: json['type'],
);
}}
also this is how json is returning
[{33857:10159,"date":"2018-07-23T11:34:22","date_gmt":"2018-07-23T11:34:22","guid":{"rendered":“ http://the2is.com/?p=10159 " }, " modified ": " 2018-07-23T11:35:13 ", " modified_gmt ": " 2018-07-23T11:35:13 ", " slug ": " only- 25-卢比将被删除的孩子 - 缺乏血液", " status ": " publish ", " type ": " post“,....]
我已经明确声明了根据Dart 2.0文档传递了什么类型的数据,但仍然存在错误 .
1 回答
首先,删除
var
,它只会降低其可读性 .从我所看到的,你收到一个新闻列表作为json,然后你映射它
List
然后你想迭代这个列表并创建一个NewsLists
列表 .相反,你应该从列表中创建一个
NewsList
对象,就像你设计的那样:)