json serialzable
시나리오 보드
- null safety를 적용하며 json을 가지고 데이터를 처리할때 고민이생겼다.
- null safety를 적용하며 ?, late, required 많은 키워드들에서 고민을 했었다.
- 수동으로 모델을 만들면서 하던게 지금까지의 과정이었다.
- 이것을 좀더 간략히 하기 위해 code generator를 사용해보자.
준비물
dependencies
- json annotation - 자동으로 만들어준다.
dev_dependencies
- build_runner
- json_serialzable
를 각각 설치해준다.
디버그에 쓸애들은 dev_dependencies에 설치해준다.
배포될때 용량이 커진다.
json serialzable 시나리오
- json serialzable 모델 클래스를 만들어준다. 필요한것만 수동으로 만들어줘야한다.
- json annotation을 import해준다.
- 만들어줄 파일명 이름으로 part에 기재를 해준다.

- @JsonSerializable()기재하기

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

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

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

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