Flutter 颤振:参数类型';动态';can';不能分配给参数类型';地图<;字符串,动态>';
假设我有一个json对象,如下所示: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
{
"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']
为空
还修复了一些关于使用构造函数的编译问题这消除了错误。我将在有机会测试后标记答案。但看起来这解决了问题。谢谢!这消除了错误。我将在有机会测试后标记答案。但看起来这解决了问题。谢谢!