颤振 - 未处理异常:Null 不是 Map<String 的子类型,动态>



我正在做一个YouTube项目。这里我有一个json类型的API,我正在dart和json对象之间进行数据转换。Json API代码:

{
"kind": "youtube#searchListResponse",
"etag": "5onvX79jNWnZR6_9hCnQcHqW7X8",
"nextPageToken": "CAgQAA",
"regionCode": "PK",
"pageInfo": {
"totalResults": 1000000,
"resultsPerPage": 8
},
}

子json对象代码转换:

class PageInfoData {
final int totalResults;
final int resultPerPage;
PageInfoData({required this.totalResults, required this.resultPerPage});
factory PageInfoData.fromJson(Map<String,dynamic>json,){
return PageInfoData(
totalResults: json['totalResults'],
resultPerPage: json['resultPerPage'],
);
}
}

YouTube页面将json转换为dart代码:

class YouTubeSearchModel {
final String kind;
final String etag;
final String nextPageToken;
final String regionCode;
final PageInfoData pageinfo;
YouTubeSearchModel({
required this.kind,
required this.etag,
required this.nextPageToken,
required this.regionCode,
required this.pageinfo,
});
factory YouTubeSearchModel.fromJson(Map<String,dynamic>json){
return YouTubeSearchModel(
etag: json['kind'],
kind: json['etag'],
nextPageToken: json['nextPageToken'],
regionCode : json['regionCode'],
pageinfo: PageInfoData.fromJson(json['pageinfo'])
);
}
}

PageInfo(子json对象(中出现异常。我是不是做错了什么?如果你对此异常有任何线索/解决方案,请与我分享,我将非常感谢<3

您的模型类中有一些打字错误。

PageInfoData中,json['resultPerPage']应为json['resultsPerPage']:

class PageInfoData {
final int totalResults;
final int resultPerPage;
PageInfoData({required this.totalResults, required this.resultPerPage});
factory PageInfoData.fromJson(Map<String, dynamic> json) {
return PageInfoData(
totalResults: json['totalResults'],
resultPerPage: json['resultsPerPage'],
);
}
}

YouTubeSearchModel中,json['pageinfo']应为json['pageInfo']:

class YouTubeSearchModel {
final String kind;
final String etag;
final String nextPageToken;
final String regionCode;
final PageInfoData pageinfo;
YouTubeSearchModel({
required this.kind,
required this.etag,
required this.nextPageToken,
required this.regionCode,
required this.pageinfo,
});
factory YouTubeSearchModel.fromJson(Map<String, dynamic> json) {
return YouTubeSearchModel(
etag: json['kind'],
kind: json['etag'],
nextPageToken: json['nextPageToken'],
regionCode: json['regionCode'],
pageinfo: PageInfoData.fromJson(json['pageInfo']));
}
}

相关内容

最新更新