Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
json_可序列化的泛型类_Json_Flutter_Dart - Fatal编程技术网

json_可序列化的泛型类

json_可序列化的泛型类,json,flutter,dart,Json,Flutter,Dart,我有一门课是这样的: @JsonSerializable(explicitToJson: true) class ApiResponse<T> { @_Converter() final T data; final ApiError error; ApiResponse({this.data, this.error}); factory ApiResponse.fromJson(Map<String, dynamic> json) =>

我有一门课是这样的:

@JsonSerializable(explicitToJson: true)
class ApiResponse<T> {
  @_Converter()
  final T data;
  final ApiError error;

  ApiResponse({this.data, this.error});

  factory ApiResponse.fromJson(Map<String, dynamic> json) =>
      _$ApiResponseFromJson(json);

  Map<String, dynamic> toJson() => _$ApiResponseToJson(this);
}

class _Converter<T> implements JsonConverter<T, Object> {
  const _Converter();

  @override
  T fromJson(Object json) {
    if (T == LoginResponse) {
      return LoginResponse.fromJson(json) as T;
    }
    if (List<Company>() is T) {
      List jsonList = json as List;
      return jsonList.map((model) => Company.fromJson(model)).toList() as T;
    }
    if (T == Employee) {
      return Employee.fromJson(json) as T;
    }
    if (T == Week) {
      return Week.fromJson(json) as T;
    }

    throw UnimplementedError();
  }

  @override
  Object toJson(T object) {
    return object;
  }
}
return json as T;
但据我所知,json唯一可能的是num、String、bool等,所以这是另一个解决方案