Flutter 颤振:参数类型';动态';can';不能分配给参数类型';地图<;字符串,动态>';

Flutter 颤振:参数类型';动态';can';不能分配给参数类型';地图<;字符串,动态>';,flutter,dart,Flutter,Dart,假设我有一个json对象,如下所示: { "sort": "asc", "page": { "next": "asdfg", "prev": "kljekj" } } class AllPage{ String sort; Page page; AllPage({this.sort, this.page}); AllPag

假设我有一个json对象,如下所示:

{
 "sort": "asc",
 "page": {
    "next": "asdfg",
    "prev": "kljekj"
 }
}
class AllPage{
 String sort;
 Page page;

 AllPage({this.sort, this.page});

 AllPage.fromJson(Map<String, dynamic> json) {
   return AllPage(
     sort = json['sort'],
     page = Page.fromJson(json['page']));
 }
}

class Page {
 String next;
 String prev;

 Page({this.next, this.prev});

 Page.fromJson(Map<String, dynamic> json) {
  return Page(
    next = json['next'],
    prev = json['prev']);
 }
}
我用dart编写了一个数据模型,如下所示:

{
 "sort": "asc",
 "page": {
    "next": "asdfg",
    "prev": "kljekj"
 }
}
class AllPage{
 String sort;
 Page page;

 AllPage({this.sort, this.page});

 AllPage.fromJson(Map<String, dynamic> json) {
   return AllPage(
     sort = json['sort'],
     page = Page.fromJson(json['page']));
 }
}

class Page {
 String next;
 String prev;

 Page({this.next, this.prev});

 Page.fromJson(Map<String, dynamic> json) {
  return Page(
    next = json['next'],
    prev = json['prev']);
 }
}
class所有页面{
字符串排序;
页码;
AllPage({this.sort,this.page});
fromJson(映射json){
返回所有页面(
sort=json['sort'],
page=page.fromJson(json['page']);
}
}
类页{
下一个字符串;
字符串prev;
页面({this.next,this.prev});
Page.fromJson(映射json){
返回页(
next=json['next'],
prev=json['prev']);
}
}
我见过无数这样的例子。但是,我的AppPage类在Page.FromJson(json['Page'])内出现了一个错误。 错误为:“无法将参数类型'dynamic'指定给参数类型'Map>string,dynamic>'

我对飞镖/飞镖还不熟悉。所以这可能是我错过的一些简单的东西。
非常感谢您的帮助!谢谢!

json['page']
返回一个动态,因为它可能是任何东西。您需要进行一些转换

class AllPage {
  String sort;
  Page page;

  AllPage({this.sort, this.page});

  factory AllPage.fromJson(Map<String, dynamic> json) {
    return AllPage(
      sort: json['sort'].toString(),
      page: Page.fromJson(json['page'] as Map),
    );
  }
}

class Page {
  String next;
  String prev;

  Page({this.next, this.prev});

  factory Page.fromJson(Map json) {
    return Page(
      next: json['next'].toString(),
      prev: json['prev'].toString(),
    );
  }
}
class所有页面{
字符串排序;
页码;
AllPage({this.sort,this.page});
factory AllPage.fromJson(映射json){
返回所有页面(
sort:json['sort'].toString(),
page:page.fromJson(json['page']作为映射),
);
}
}
类页{
下一个字符串;
字符串prev;
页面({this.next,this.prev});
工厂页面.fromJson(映射json){
返回页(
next:json['next'].toString(),
prev:json['prev'].toString(),
);
}
}
请注意,它假设了很多关于json的结构。您应该添加一些检查,例如
json['page']
json['next']
为空


还修复了一些关于使用构造函数的编译问题

json['page']
返回动态,因为它可能是任何东西。您需要执行一些强制转换

class AllPage {
  String sort;
  Page page;

  AllPage({this.sort, this.page});

  factory AllPage.fromJson(Map<String, dynamic> json) {
    return AllPage(
      sort: json['sort'].toString(),
      page: Page.fromJson(json['page'] as Map),
    );
  }
}

class Page {
  String next;
  String prev;

  Page({this.next, this.prev});

  factory Page.fromJson(Map json) {
    return Page(
      next: json['next'].toString(),
      prev: json['prev'].toString(),
    );
  }
}
class所有页面{
字符串排序;
页码;
AllPage({this.sort,this.page});
factory AllPage.fromJson(映射json){
返回所有页面(
sort:json['sort'].toString(),
page:page.fromJson(json['page']作为映射),
);
}
}
类页{
下一个字符串;
字符串prev;
页面({this.next,this.prev});
工厂页面.fromJson(映射json){
返回页(
next:json['next'].toString(),
prev:json['prev'].toString(),
);
}
}
请注意,它假设了很多关于json的结构。您应该添加一些检查,例如
json['page']
json['next']
为空


还修复了一些关于使用构造函数的编译问题

这消除了错误。我将在有机会测试后标记答案。但看起来这解决了问题。谢谢!这消除了错误。我将在有机会测试后标记答案。但看起来这解决了问题。谢谢!