[Dart] List<Map<String, dynamic>> ==> List<MyBookMod…
페이지 정보
작성자 sbLAB 댓글 0건 조회 878회 작성일 23-01-16 17:54본문
[Dart] List<Map<String, dynamic>> ===> List<MyBookModel>
※flutter Sqlite(sqflite 패키지)는 List<Map<String, dynamic>> 타입으로 기본 리턴되므로 List<데이타모델> 타입으로 변환필요.
class MyBookModel {
final int id;
final String name;
final int price;
MyBookModel({required this.id, required this.name, required this.price});
// MyBookModel Map으로 변환(DB사용 모델일 경우 key는 데이터베이스 컬럼 명과 동일)
// Map<String, dynamic> toMap() {
// return {
// 'id': id,
// 'name': name,
// 'price': price,
// };
// }
//factory
factory MyBookModel.fromMaps(Map<String, dynamic> maps) {
return MyBookModel(
id: maps['id'], name: maps['name'], price: maps['price']);
}
}
void main() {
List<Map<String, dynamic>> myBooks = [
{"id": 1, "name": "HTML and CSS", "price": 150},
{"id": 2, "name": "Python", "price": 250},
{"id": 3, "name": "Dart", "price": 120},
{"id": 4, "name": "Java", "price": 100},
{"id": 5, "name": "JavaScript", "price": 110},
];
print('-------(1)------');
// List<Map<String, dynamic>>를 List<MyBookModel>으로 변환 (1)
var result = List.generate(myBooks.length, (i) {
return MyBookModel(
id: myBooks[i]['id'],
name: myBooks[i]['name'],
price: myBooks[i]['price'],
);
});
print(result);
for (var r in result) {
print(r.name);
}
print('-------(2)------');
// List<Map<String, dynamic>>를 List<MyBookModel>으로 변환 (2)
var resultList = []; // [] : List
for (var item in myBooks) {
resultList.add(MyBookModel(
id: item['id'],
name: item['name'],
price: item['price'],
));
}
print(resultList);
for (var r in resultList) {
print(r.name);
}
print('-------(3)------');
// List<Map<String, dynamic>>를 List<MyBookModel>으로 변환 (3) ★
var resultList2 = []; // [] : List
for (var item in myBooks) {
resultList2.add(MyBookModel.fromMaps(item));
}
print(resultList2);
for (var r in resultList2) {
print(r.name);
}
print('-------(4)------');
// List<Map<String, dynamic>>를 List<MyBookModel>으로 변환 (4) ★★★
var result2 = myBooks.map((i) => MyBookModel.fromMaps(i)).toList();
print(result2);
for (var r in result2) {
print(r.name);
}
}
-------(1)------
[Instance of 'MyBookModel', ..., Instance of 'MyBookModel']
HTML and CSS
Python
Dart
Java
JavaScript
-------(2)------
[Instance of 'MyBookModel', ..., Instance of 'MyBookModel']
HTML and CSS
Python
Dart
Java
JavaScript
-------(3)------
[Instance of 'MyBookModel', ..., Instance of 'MyBookModel']
HTML and CSS
Python
Dart
Java
JavaScript
-------(4)------
[Instance of 'MyBookModel', ..., Instance of 'MyBookModel']
HTML and CSS
Python
Dart
Java
JavaScript
댓글목록
등록된 댓글이 없습니다.