반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스
- 플러터 개발
- 스프링부트공부
- 알고리즘공부
- 자료구조공부
- 코테준비
- nestjs공부
- 기술면접공부
- 기술공부
- 자바공부
- 스프링 공부
- 스프링부트
- 플러터 공부
- 스프링공부
- 카프카
- nestjs스터디
- JPA 공부
- JPA
- K8S
- JPA예제
- Flutter
- querydsl
- JPA스터디
- 코테공부
- 스프링
- Kafka
- JPA공부
- DDD
- nestjs
- Axon framework
Archives
- Today
- Total
DevBoi
[Flutter] Auto Serializable 본문
반응형
플러터 사용중 자동으로 역직렬화와 직렬화를 가능하게 해주는 라이브러리를 사용해야겠다고 생각했다.
손수 직접 매핑을 해줬는데 이 작업이 상당히 귀찮아 졌다.
dart pub add dev:json_serializable
dev_dependencies:
flutter_test:
sdk: flutter
build_runner: ^2.0.0
json_serializable: ^6.7.1
import 'package:json_serializable/json_serializable.dart';
위 작업으로 관련 클래스에서 사용할 수있다.
자동 Factory 메소드를 생성을 해주는데, 직접 매핑을 관여한다.
관련되서 사용법은 아래와 같다.
아래와 같이 명시만 해놓은 파일이 있다고 가정한다.
import 'package:json_annotation/json_annotation.dart';
part 'kakao_profile.g.dart';
@JsonSerializable()
class KakaoUserProfile{
int? id;
String? nickname;
String? thumbnailImageUrl;
KakaoUserProfile(int? id,String? nickname,String? thumbnailImageUrl){
this.id = id;
this.nickname = nickname;
this.thumbnailImageUrl = thumbnailImageUrl;
}
factory KakaoUserProfile.fromJson(Map<String, dynamic> json) => _$KakaoUserProfileFromJson(json);
Map<String, dynamic> toJson() => _$KakaoUserProfileToJson(this);
}
아래 커맨드 라인 명령어를 실행시
flutter pub run build_runner build
아래 파일이 자동생성된다.
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'kakao_profile.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
KakaoUserProfile _$KakaoUserProfileFromJson(Map<String, dynamic> json) =>
KakaoUserProfile(
json['id'] as int?,
json['nickname'] as String?,
json['thumbnailImageUrl'] as String?,
);
Map<String, dynamic> _$KakaoUserProfileToJson(KakaoUserProfile instance) =>
<String, dynamic>{
'id': instance.id,
'nickname': instance.nickname,
'thumbnailImageUrl': instance.thumbnailImageUrl,
};
이렇게 편리하게 사용이 가능하다.
컬럼 수가 많을때 진행하면 편리할듯하다.
반응형
'[Mobile] > [Flutter]' 카테고리의 다른 글
[AOS] ADB memory 부족으로 인해 오류 시 대처 (0) | 2023.11.12 |
---|---|
[Flutter] Firebase auth + Google login 구현 (0) | 2023.11.12 |
[Flutter] Firebase Storage, Database (1) | 2023.10.22 |
[Flutter] ios 빌드 구성 차이 (0) | 2023.10.12 |
[Flutter] Chatting 모듈 정리 (0) | 2023.10.08 |