我有以下從 API 呼叫回傳的 JSON:
{
"categories": {
"mortgage": "Mortgage",
"haircutsClothing": "Haircuts & Clothing",
"homeRepairMaintenance": "Home Repair & Maintenance"
},
"other": {...}
}
然后我讓這個類充當 JSON 資料的模型:
class APIData {
final Map<String, dynamic> parsedJson;
APIData({required this.parsedJson});
factory APIData.fromJson(Map<String, dynamic> parsedJson) {
List<Category> categories = parsedJson['categories']
.map((i) => Category.fromJson(i))
.toList();
return APIData(parsedJson: parsedJson);
}
}
class Category {
final String key;
final String category;
Category({required this.key, required this.category});
factory Category.fromJson(Map<String, dynamic> parsedJson) {
return Category(key: parsedJson['key'], category: parsedJson['value']);
}
}
當我運行它時,我收到此錯誤:
_TypeError (type '(dynamic) => Category' is not a subtype of type '(String, dynamic) => MapEntry<dynamic, dynamic>' of 'transform')
我做錯了什么導致這個錯誤?
uj5u.com熱心網友回復:
Map 物件上的方法 .map 也必須回傳 Map 物件。
試試這個
final categoriesMap = parsedJson['categories'] as Map;
final List<Category> categories =
categoriesMap.entries
.map((e) => Category(key: e.key, category: e.value))
.toList();
Map 中的條目回傳 Map Entry 的 Iterable。然后您可以遍歷它并使用鍵和值屬性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/400739.html
上一篇:沒有時間顫動的日期選擇器
