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);