inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

fromJson 생성자 만들어보기

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

해결된 질문

415

오명석

작성한 질문수 1

0

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

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

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

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

flutter fromjson formjson

답변 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중 어떤게 더 좋냐는건 유효하지 않은 질문입니다. 내가 어떻게 선언하고싶은지에 따라 스펠링 차이만 있기 때문입니다.

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

감사합니다!

Isar 마지막 업데이트는 2년전입니다.

0

35

0

FlutterSecureStorage 질문

0

34

0

Dio onError Interceptor 만드는 부분에 질문이 있습니다.

0

81

2

관리자 기능에 대한 질문

0

101

2

part 'restaurant_model.g.dart';

0

93

1

36강. dio 인터셉터에 storage를 전달하는 코드가 이해 안되는데요. 도움 부탁드립니다.

0

56

2

2번 반환 상황 관련 질문

0

64

2

riverpod 3.0

0

143

2

Asset folder??

0

87

2

디자이너와 협업 시 프레임 크기 설정 관련 질문

0

117

2

FutureProvider, StateNotifierProvider 선택 기준

0

71

2

컴포넌트 모델화

0

66

2

쿼리 파라미터

0

86

2

화면 안보임

0

72

2

PaginationListView

0

56

1

강의중 37.Dio onErrorInterceptor 작업하기 dio 관련 질문입니다.

0

105

2

프로토타입이미지

0

63

2

여러 객체를 상태 관리하는 방법에 대한 질문

0

86

2

장바구니 결제하기 응답이 500이 옵니다.

0

106

2

removeFromBasket에서 await patchBasket()을 마지막에 하면 에러나는거 아닌가요?

0

68

2

이 두가지는 완전히 동일한 기능인가요?

0

107

3

내부 코드를 작성하지 않은 CursorPaginationLoading가 어떻게 로딩상태를 갖는지 잘 모르겠습니다...

0

80

2

_SplashScreenState에서 storage를 late로 호출해서 한번만 불러와도 되나요?

0

88

2

코딩 작성 순서 관련 질문

0

88

2