json은 개발을 하다보면 정말 많이 사용하는 key-value 표현 방식입니다
데이터를 저장하고 불러올때, 데이터를 수신받고 전송할때 많이 쓰입니다
사용자 JSON 예제
{
"name": "Dalmangyi",
"email": "dalmangyi@email.com"
}
JSON -> Map 변환
Map<String, dynamic> user = jsonDecode(jsonString);
print('Howdy, ${user['name']}!');
print('We sent the verification link to ${user['email']}.');
dart에서 제공하는 jsonDecode 함수를 이용하면 가뿐하게 Map 객체로 변환할 수 있습니다
Map 객체는 Key-Value 형태로 담을 수 있는 데이터 구조로 flutter에서는 주로 Key값을 String, Value값을 dynamic으로 사용하고 있습니다.
Map -> JSON 변환
String jsonString = jsonEncode(user);
jsonEncode 함수를 이용하면 가뿐하게 Map 객체를 Json String으로 변환할 수 있습니다
매핑
class User {
final String nm; //name
final String em; //email
User(this.nm, this.em);
User.fromJson(Map<String, dynamic> json)
: nm = json['name'],
em = json['email'];
Map<String, dynamic> toJson() =>
{
'name': nm,
'email': em,
};
}
json의 key와 만들고자하는 클래스의 변수가 다르다면 fromJson, toJson 함수를 만들어서 매핑할 수 있습니다.
//방법1
Map userMap = jsonDecode(jsonString);
var user = jsonEncode(userMap);
//방법2
var user = User.fromJson(jsonString);
Map userMap = user.toJson();
print('Howdy, ${user.name}!');
print('We sent the verification link to ${user.email}.');
'스터디 > Flutter+Dart' 카테고리의 다른 글
Flutter Permission 권한확인 (permission_handler) (0) | 2019.07.31 |
---|---|
Flutter Alert Dialog, Progress, Auto Close (4) | 2019.07.30 |
Flutter SharedPreferences (앱이 종료되도 남아있는 데이터, Key-Value) (0) | 2019.07.27 |
Flutter Screen(Route,Activity) 컨트롤 (화면 이동, Data전달) (0) | 2019.07.26 |
Flutter 텍스트 입력 (EditText, TextField) (0) | 2019.07.26 |
댓글