Flutter / Dart Json 직렬화
Oct 21 2020
저는 Flutter와 Dart를 처음 사용하며 가능한 경우 일부 Android 스튜디오 응용 프로그램을 flutter를 사용하도록 변환하려고합니다. 모든 dart / flutter 기능이 어떻게 도움이 될 수 있는지 알아보기 위해 간단한 json을 구문 분석하려고합니다.
작성하려는 클래스 구조는 다음과 같습니다.
class Company extends Salinas {
final String name;
Company({this.name}) : super();
factory Company.fromJson(Map<String, dynamic> json) => _$CompanyFromJson(json); Map<String, dynamic> toJson() => _$CompanyToJson(this);
}
class Salinas {
final int id;
Salinas({this.id});
factory Salinas.fromJson(Map<String, dynamic> json) => _$SalinasFromJson(json); Map<String, dynamic> toJson() => _$SalinasToJson(this);
}
json 문자열은 간단합니다
{"id":1,"name":"Acme"}
과:
print(company.id)is null
print(company.name) is Acme;
Company.g.dart 파일을 볼 때 확장 클래스 Salinas에 대한 참조가 없습니까? 이것을 할 방법이 있습니까?
나는 분명히 뭔가를 놓치고있다.
답변
1 Akif Oct 21 2020 at 03:03
다음과 같이 자식 생성자에서 확장 클래스 속성을 정의해야합니다.
class Company extends Salinas {
final String name;
Company({id, this.name}) : super(id: id);
}
이 결과가 표시되면 :
print(company.id) is 1
print(company.name) is Acme;
1 DarshShah Oct 21 2020 at 16:09
class Company {
int id;
String name;
Company({this.id, this.name});
Company.fromJson(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
return data;
}
}
제공 한 JSON을 기반으로 위와 같이 Model을 만들어야합니다. 그 후에는 모든 것을 매우 편리하게 매핑 할 수 있습니다.
Company company = Company.fromJson(response);
그러면 자유롭게 인쇄 할 수 있습니다.
print(company.id);
print(company.name);