jsonEncode , jsonDecode 함수가 있는데
Map, List 를 String으로 변환해주거나
Map, List 를 String 등으로 변환해줌
// json 데이터
String jsonString = """
{
"name" : "김대성",
"isMale" : true
}
"""
var decodedData = jsonDecode(jsonString);
print(decodedData); // {name: 김대성, isMale : true}
print(decodedData.runtimeType} // Map<String, dynamic>
String enCodedData = jsonEncode(decodedData); // 만들어진 map을 다시 json으로
print(enCodedData); // {"name" : "김대성", "isMale" : true} 다시 json!
Class User {
String name;
bool isMale;
User({
required this.name;
required this.isMale;
});
User.fromJson(Map<String, dynamic> map)
: this(
name: map["name"],
isMale: map["isMale"],
);
// decode해서 만든 map을 받아 객체를 생성해주는 named 생성자
Map<String, dynamic> toJson() {
return {
"name" : name,
"isMale": isMale
};
}
// jsonEncode를 할 수 있는 Map 객체로 바꿔주는 메소드
}
Model + View + ViewModel
Model : 데이터를 서버 등에서 가지고 오는 계층
View : 화면을 구현하는 계층
ViewModel : Model 계층에서 데이터를 가지고 와서 가공 및 상태 관리
Riverpod을 사용하면 빠르게 MVVM을 만들 수 있다.