如何在Dart 3中使用记录、模式匹配和JSON解构来解析JSON数据?
以下是Dart 2中的情况。
型号
class Category {
final int id;
final String title;
Category({
required this.id,
required this.title,
});
factory Category.fromJson(Map<String, dynamic> data) {
return Category(
id: data['id'] as int,
title: data['title'] as String,
);
}
}
API Repository Class方法中
class ApiRepository {
Future<List<Category>> fetchCategory() async {
final res = await get(...);
List<dynamic> decodedData = jsonDecode(res.body);
final fetchedCategories =
decodedData.map((e) => Category.fromJson(e)).toList();
return fetchedCategories;
}
}
1条答案
按热度按时间wd2eg0qa1#
因为这对我来说是新的,这是我所假设的。我很高兴反馈:
让我们简单地看看模式匹配是做什么的。
假设我们的类为:
让我们有一个对象。普通老json
我们可以使用模式匹配来分配这个对象的值。我更喜欢交换箱。考虑到所有的安全措施,这是理想的。
现在如果你打印ID,你会得到10。
使用jsonObjects列表,我们可以简单地做到:
对于复杂的情况,避免OOP似乎是一件很痛苦的事情。注:这是我的理解。请纠正或评论您的意见,以及这样我就可以改善