首页 文章

在flonter中进行json解析时键入Mismatch

提问于
浏览
0

我有一个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 回答

  • 0

    首先,删除 var ,它只会降低其可读性 .
    从我所看到的,你收到一个新闻列表作为json,然后你映射它 List 然后你想迭代这个列表并创建一个 NewsLists 列表 .

    相反,你应该从列表中创建一个 NewsList 对象,就像你设计的那样:)

    List data = json.decode(response.body) as List; 
    NewsList newsPageViewResult = new NewsList.fromJson(data)
    

相关问题