[flutter] 플러터(Flutter)에서 데이터 주고받기를 위한 데이터 직렬화 방법은?
플러터에서 객체를 JSON 형식으로 직렬화하려면, dart:convert
패키지의 jsonEncode()
함수를 사용합니다. 이 함수는 맵(Map) 또는 리스트(List)와 같은 데이터 구조를 JSON 문자열로 변환합니다. 반대로 JSON 문자열을 객체로 역직렬화하려면 jsonDecode()
함수를 사용하여 JSON 문자열을 맵 또는 리스트로 변환합니다.
예를 들어, 다음은 Map을 JSON 문자열로 직렬화하고 역직렬화하는 예제 코드입니다.
import 'dart:convert';
void main() {
// 직렬화
Map<String, dynamic> inputData = {
'name': 'Flutter',
'platform': 'Mobile'
};
String jsonString = jsonEncode(inputData);
print('직렬화 결과: $jsonString');
// 역직렬화
Map<String, dynamic> outputData = jsonDecode(jsonString);
print('역직렬화 결과: $outputData');
}
또 다른 방법으로 Protocol Buffers를 사용하여 데이터 직렬화를 수행할 수 있습니다. Protocol Buffers는 구조화된 데이터를 직렬화하고 역직렬화하기 위한 이식 가능한 방식을 제공합니다. 이를 위해서는 protobuf
패키지를 사용하여 Protocol Buffers 정의를 생성하고, 데이터를 직렬화 또는 역직렬화할 수 있습니다.
위에서 설명한 방법들은 플러터에서 데이터를 주고받을 때 필요한 데이터 직렬화 방법에 대한 기본적인 지식을 제공합니다. 선택한 방법에 따라 데이터 모델 및 통신 프로토콜을 설계하고 구현할 수 있습니다.
[참고 자료]
- Dart JSON과 직렬화: https://flutter.dev/docs/development/data-and-backend/json
- Protocol Buffers in Dart: https://developers.google.com/protocol-buffers/docs/darttutorial