[Flutter] 플러터 json serialzable 라이브러리를 알고보자

dino0806·2022년 2월 28일
0

json serialzable

시나리오 보드

  • null safety를 적용하며 json을 가지고 데이터를 처리할때 고민이생겼다.
  • null safety를 적용하며 ?, late, required 많은 키워드들에서 고민을 했었다.
  • 수동으로 모델을 만들면서 하던게 지금까지의 과정이었다.
  • 이것을 좀더 간략히 하기 위해 code generator를 사용해보자.

준비물

dependencies

  • json annotation - 자동으로 만들어준다.

dev_dependencies

  • build_runner
  • json_serialzable

를 각각 설치해준다.

디버그에 쓸애들은 dev_dependencies에 설치해준다.

배포될때 용량이 커진다.

json serialzable 시나리오

  1. json serialzable 모델 클래스를 만들어준다. 필요한것만 수동으로 만들어줘야한다.
  • json annotation을 import해준다.
  1. 만들어줄 파일명 이름으로 part에 기재를 해준다.

  • 자동으로 hits라는 파일이 생성될것이다.
  1. @JsonSerializable()기재하기

  1. 클래스에 필요한 애들만 넣어준다.

  • 클랙스 변수들을 만들고, 생성자까지 만들어준다.
  1. factory 를 기재하고 기존대로 fromJson을 해준다.

  • 이렇게 준비해주면 된다.
  • 이렇게 되면 late가 붙지않는 방식이다, 그리고 nullable까지 가능하다.
  1. build_runner를 이용해여 code generate 하기
  • flutter pub run build_runner build 명령어를 실행해준다.
  • part에 기재해준 파일이 생성된다. 이건 1회용이고
  • 우리가 추가를 해주고싶다면 flutter pub run build_runner build watch 로 계속 사용할수있게 만든다.
  • 코드 제네레이트시 중요한점은 파일명과 part 명이 같아야한다는 것이다.

  • 이 상황 때문에 안되는 경우가 굉장히 많았다(내얘기)

0개의 댓글