我正在做一個 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(sub-json-object) 中。我在這里做錯了嗎?如果您對此例外有任何線索/修復,請分享我將不勝感激 <3
uj5u.com熱心網友回復:
您的模型類中有一些拼寫錯誤。
在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']));
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/369069.html
