Coaspe

Flutter - Json Serialization 본문

Flutter/기술

Flutter - Json Serialization

Coaspe 2023. 2. 17. 13:42

Flutter, Dart에서 Json Serialization하는 방법에 대해 알아봅시다.

 

우선 3가지 package가 필요합니다.

 

1. json_serializable

2. json_annotation

3. build_runner

 

그 다음 Serialization, Deserialization을 하고 싶은 class(모든 예는 Store.dart에 정의한 커스텀 클래스인 Store를 사용합니다.)를 다음과 같이 annotate 하면 됩니다.

 

@JsonSerializable annotation의 인자인 fieldRename은 생성될 JSON에서 만약 FieldRename.snake라면,

oneLineDesc => one_line_desc

처럼 field가 json의 key로 변환됩니다. (lowerCamelCase => snake)

 

Annotation을 적용 한 후,

flutter 개발을 하고 있다면,

flutter pub run build_runner build

을 실행하면 Store.g.dart 파일이 생성됩니다.

 

 

Store.g.dart에 생성된 함수는 2개 입니다.

 

Store _$StoreFromJson(Map<String, dynamic> json)

Json을 Store 객체로 변환시켜주는 함수 입니다. 위에서 설명 했듯이, snake가 적용되어 storeId이 Json에서는 store_id 와 같은 형식으로 사용된 모습입니다.

 

 

Map<String, dynamic> _$StoreToJson(Store instance)

Store 객체를 Json으로 변환시켜주는 함수 입니다. 로직은 위의 함수와 거의 반대라고 보셔도 됩니다. DB로 부터 Json으로 받은 후 객체로 사용할 때 사용하면 유용합니다.

Comments