[dart] HTTP 요청 시에 데이터 역직렬화하기

일반적으로 HTTP 요청을 통해 전달되는 데이터는 직렬화된 형식인데, 이를 앱에서 사용하려면 역직렬화 과정이 필요합니다. Dart에서는 이를 위해 http 패키지와 dart:convert 라이브러리를 사용하여 간단하게 구현할 수 있습니다.

1. http 패키지 설치

먼저 http 패키지를 pubspec.yaml 파일에 추가합니다.

dependencies:
  http: ^0.14.0

그리고 다음 명령을 사용하여 패키지를 업데이트합니다.

$ flutter pub get

2. HTTP 요청 보내기

이제 HTTP 요청을 보내고 응답을 받아올 준비가 되었습니다. 아래는 간단한 GET 요청을 보내는 예제입니다.

import 'package:http/http.dart' as http;

void fetchData() async {
  var response = await http.get(Uri.parse('https://api.example.com/data'));
  if (response.statusCode == 200) {
    // 응답 데이터 역직렬화
    var data = json.decode(response.body);
  } else {
    // 오류 처리
    print('Failed to load data: ${response.statusCode}');
  }
}

3. 데이터 역직렬화

위의 예제에서 HTTP 응답에서 받아온 데이터는 JSON 형식일 것으로 예상됩니다. 이를 Dart의 객체로 사용하기 위해 dart:convert 라이브러리를 사용하여 역직렬화합니다.

var data = json.decode(response.body);
print(data['key']);

위의 코드에서 response.body는 받아온 JSON 데이터를 나타냅니다. 이를 json.decode를 사용하여 Dart의 Map 또는 List로 변환할 수 있습니다.

이제 HTTP 요청을 보내고 받아온 데이터를 역직렬화하는 방법에 대해 알게 되었습니다.

더 많은 정보를 원하시면 dart:convert 라이브러리 문서를 확인해보세요.

생각하신 것보다 간단하죠?