Notice
Recent Posts
Recent Comments
올해는 머신러닝이다.
Flutter study #5 - Json encoding / decoding 본문
JSON 핸들러
서버와 통신시 제일 자주 사용되는 형태가 JSON 이다. 그럼 다트에서는 어떻게 다룰수 있는 지 살펴보겠다.
테스트 환경은 https://dartpad.dartlang.org/ 에서 진행한다.
import 'dart:convert';
void main() {
var rawJson = '{"url": "http://blah.jpg","id":1}';
var parsedJson = json.decode(rawJson);
print(parsedJson);
print(parsedJson['url']);
}
.............
{url: http://blah.jpg, id: 1}
http://blah.jpg
그리고 모델 클래스를 만들어서 매핑하고자 할때에는 값을 키값을 줘서 값을 가져온다음 set 을 통해서 모델을 만들수 있다.
import 'dart:convert';
void main() {
var rawJson = '{"url": "http://blah.jpg","id":1}';
var parsedJson = json.decode(rawJson);
var imageModel = new ImageModel(
parsedJson['id'],
parsedJson['url']
);
print(imageModel);
}
class ImageModel {
int id;
String url;
ImageModel(this.id, this.url);
String toString() {
return '$id,$url';
}
}
하지만 만약 여러개 속성을 파싱할때 이 방식은 좀 불편하다.
그래서 fromJson 함수를 제공해준다. 이 함수는 JSON 을 미리 정의된 값을 매핑해주는 역할을 한다.
그럼 코드를 보면 이해가 빠를거라 본다.
import 'dart:convert';
void main() {
var rawJson = '{"url": "http://blah.jpg","id":1}';
var parsedJson = json.decode(rawJson);
var imageModel = new ImageModel.fromJson(parsedJson);
print(imageModel);
}
class ImageModel {
int id;
String url;
ImageModel(this.id, this.url);
ImageModel.fromJson(Map<String, dynamic> parsedJson)
: id = parsedJson['id'],
url = parsedJson['url'];
String toString() {
return '$id,$url';
}
}
............
1,http://blah.jpg
'스터디 > Flutter' 카테고리의 다른 글
Flutter 1차 샘플 앱 완성 (0) | 2018.09.07 |
---|---|
Flutter study #6 - Await / Future 비동기 함수 설명 (0) | 2018.09.07 |
Flutter Study #4 - StatefulWidget 구현 방법 (0) | 2018.09.06 |
Flutter Study #3 - Custom Widget 추가 (0) | 2018.09.06 |
Flutter Study #2 - Scaffold 위젯 추가 (0) | 2018.09.06 |