import 'package:json_annotation/json_annotation.dart'; part 'podcastrss.g.dart'; @JsonSerializable() class Podcastrss{ @_ConvertR() final R rss; Podcastrss({this.rss}); factory Podcastrss.fromJson(Map json) => _$PodcastrssFromJson(json); Map toJson() => _$PodcastrssToJson(this); } class _ConvertR implements JsonConverter{ const _ConvertR(); @override R fromJson(Object json){ return Rss.fromJson(json) as R; } @override Object toJson(R object){ return object; } } @JsonSerializable() class Rss{ @_ConvertC() final C channel; Rss({this.channel}); factory Rss.fromJson(Map json) => _$RssFromJson(json); Map toJson() => _$RssToJson(this); } class _ConvertC implements JsonConverter{ const _ConvertC(); @override C fromJson(Object json){ return Channel.fromJson(json) as C; } @override Object toJson(C object){ return object; } } @JsonSerializable() class Channel { final String title; final String link; final String description; @_ConvertE() final List item; Channel({this.title, this.link, this.description, this.item}); factory Channel.fromJson(Map json) => _$ChannelFromJson(json); Map toJson() => _$ChannelToJson(this); } class _ConvertE implements JsonConverter{ const _ConvertE(); @override E fromJson(Object json){ return EpisodeItem.fromJson(json) as E; } @override Object toJson(E object){ return object; } } @JsonSerializable() class EpisodeItem{ final String title; final String link; final String pubDate; final String description; EpisodeItem({this.title, this.link, this.pubDate, this.description} ); factory EpisodeItem.fromJson(Map json) => _$EpisodeItemFromJson(json); Map toJson() => _$EpisodeItemToJson(this); }