DEV Community

Discussion on: Dart (Flutter) serialize nested generics

Collapse
 
onuryont profile image
Onur Yönt

What about nested generics ? If there is a base response class that wraps PagedResult like

class BaseResponse {
bool succeeded;
String message;
PagedResult innerData;
}

Collapse
 
edezacas profile image
Edu Deza

You can do something like this:

class BaseResponse<T> {
bool succeeded;
String message;
PagedResult<T> innerData;

BaseResponse({this.succeeded, this.message, this.innerData});

 factory BaseResponse.fromJson(Map<String, dynamic> json, Function fromJson) {
   return BaseResponse<T>(
    succeeded: json.succeeded,
     message: json.message,
    innerData: PagedResult<T>.fromJson(json.pager, fromJson)
    );
 }
}
Enter fullscreen mode Exit fullscreen mode

An as the last example with Customer:

final BaseResponse<Customer> baseResp = BaseResponse<Customer>.fromJson(json, Customer.fromJson);
Enter fullscreen mode Exit fullscreen mode

Of course the "json" structure depends on your http response.