직렬화

ssh·2023년 12월 11일
0

dart

목록 보기
17/22

직렬화란?

  • 직렬화를 통해 인스턴스를 바이트 배열로 상호 변환할 수 있다.
  • 클래스 내부의 필드도 직렬화 대상이라면 모두 직렬화 처리를 해 줘야 한다.
  • 클래스 설계의 변경에 대비하려면 직렬화 버전 UID를 선언한다

dart의 직렬화

  • ‘dart:convert’ 라이브러리를 사용하여 직렬화와 역직렬화를 할 수 있다.
  • dart 환경에서는 클래스 내용을 Json형태로 변환하는 것으로 본다.
    • toJson() : 객체를 Json 형태로 표현하는 메서드
      • 코드
        // toJson() : 객체를 Json 형태로 표현하는 메서드
        Map<String, dynamic> toJson() {
            return {
              '_name': _name,
              '_age': _age,
            };
          }
        // 직렬화 JSON 형식의 문자열로 변환
            final String json = jsonEncode(department.toJson());
            print('$json\n');
  • 역직렬화는 그 반대로 Json형태를 클래스 내용으로 변환하는 것이다.
    • fromJson() : json(실제로는 Map)으로부터 객체를 생성하는 생성자
      • 코드
        // fromJson() : json(실제로는 Map)으로부터 객체를 생성하는 생성자 
        factory Employee.fromJson(Map<String, dynamic> map) {
            return Employee(
              name: map['_name'] as String,
              age: map['_age'] as int,
            );
          }

0개의 댓글

관련 채용 정보