인프런 커뮤니티 질문&답변

오명석님의 프로필 이미지
오명석

작성한 질문수

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

fromJson 생성자 만들어보기

26강, RestaurantModel.fromJson(json:item); 과 formJson 사용차이

해결된 질문

작성

·

334

0

26 강 fromJson 생성자 만들기 편에서

final pItem = RestaurantModel.fromJson(json: item);
강의와 같이 선언하면 하기와 같이 에러가 납니다.

반면, formJson 을 사용하면 정상 작동 합니다.
일반적으로는 from 을 쓰는게 더 좋다고는 하는데, 어떻게 해야 맞는건지 모르겠습니다.

찾아본 바로는 이와같이 차이가 있네요... 강사님 고견을 부탁드리겠습니다.

답변 2

1

오명석님의 프로필 이미지
오명석
질문자

앗! 강사님 제가 실수를 했네요....
restaurant_model.dart 파일에서 애초에 factory RestaurantModel 생성자를 만들면서 .formJson({ }) 로 잘못입력을 했습니다 .
다시 확인하다 발견하여 강사님 강의데로 .fromJson 으로 수정하니 당연하겠지만, restaurant_screen.dart 파일 에서도 정상 반영 되어 오류가 나지 안습니다.

 

감사합니다.

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

질문을 잘 이해 못하겠습니다. 그냥 공짜로 사용 할 수 있게 되는 fromJson과 formJson이라는 기능은 없습니다. 저는 제 강의에서 fromJson이라고 factory constructor의 이름을 지었기 때문에 fromJson이라는 factory constructor 사용이 가능한겁니다. 만약에 이름만 formJson으로 바꾼다면 이름과 관계없이 똑같은 기능을 실행 할 수 있습니다.

원하신다면 fromJson을 formJson으로 선언 할 수도 있겠지만 이건 매우 좋지 않습니다. 'from' 'json' 즉 JSON 형태로부터 데이터를 받아온다는걸 명시해주는 단어이기때문에 'form' 'json' 이라고 이름을 짓게되면 완전 다른 의미가 되어서 헷갈릴 수 있습니다.

다시 말씀드리면 formJson이든 fromJson이든 다트언어에 기본으로 존재하는 constructor는 없습니다. 저희가 그리 이름을 짓고 선언했기때문에 사용 가능한 것 뿐입니다. 결과적으로 formJson과 fromJson중 어떤게 더 좋냐는건 유효하지 않은 질문입니다. 내가 어떻게 선언하고싶은지에 따라 스펠링 차이만 있기 때문입니다.

이해가 안되신다면 언제든 다시 질문주세요!

감사합니다!

오명석님의 프로필 이미지
오명석

작성한 질문수

질문하기