在扑扑中的json解析期间输入不匹配项

时间:2018-07-24 05:43:36

标签: dart flutter

我有一个以列表形式返回的json。我正在尝试解析它,但收到一个名为

的错误

_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                                                                                                                    

[   {     “ id”: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”,     “子弹”:“只有25卢比的血量不足的儿童将被剔除”,     “ status”:“发布”,     “ type”:“ post”,....]

我已经明确声明了根据Dart 2.0文档传递的数据类型,仍然存在错误。

1 个答案:

答案 0 :(得分:0)

首先,放下var,只会使其可读性降低。
据我所知,您将以json的形式接收新闻列表,然后将其映射为List,然后要遍历此列表并创建一个NewsLists列表。

相反,您应该按照设计的方式从列表中创建一个NewsList对象:)

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