【问题标题】:Dart - convert Webfeed to JsonDart - 将 Webfeed 转换为 Json
【发布时间】:2019-10-10 17:51:49
【问题描述】:

我是dartflutter 的新手。我正在学习并尝试制作一个从网站读取 Atomic 提要的应用程序。我正在使用webfeed 包来完成此操作。

这是我到目前为止的代码 -

Future<NewsModel> fetchLatestNews() async {
    final response = await client.get("https://www.example.com/blog-news-list/atom/");

    if(response.statusCode == 200){
      var atomFeed = new AtomFeed.parse(response.body);
      Map map = new Map();
      for (int i = 0; i < atomFeed.items.length; i++) {          
           map[i]["title"] = atomFeed.items[i].title;
           map[i]["link"] = atomFeed.items[i].id;
           map[i]["published"] = atomFeed.items[i].published;
           map[i]["summary"] = Helpers.removeAllHtmlTags(atomFeed.items[i].summary);
      }

      return NewsModel.fromJson(json.decode(map.toString())); 
    }else {
      throw Exception("Failed to load post.");
    }

  } 

这是我的news_model.dart

class NewsModel{

  List<_Result> _results = [];

  NewsModel.fromJson(Map<String, dynamic> parsedJson) {
    List<_Result> temp = [];

  for (int i = 0; i < parsedJson.length; i++) {
      _Result result = _Result(parsedJson[i]);
      temp.add(result);
    }
    _results = temp;
  }

  List<_Result> get results => _results;
}

class _Result {
  String _title;
  String _link;
  String _published;
  String _summary;
  List<String> _categories = [];

  _Result(result) {

    _title = result['title'];
    _link = result['link'];
    _published = result['published'];
    _summary = result['summary'];

    for (int i = 0; i < result['category'].length; i++) {
      _categories.add(result['category'][i]);
    }
  }

  String get published => _published;
  String get title => _title;
  String get link => _link;
  String get summary => _summary;
  List<String> get categories => _categories;
}

这些代码不起作用。我知道我做错了,但是如果回答以下任何一个问题,我的问题就会得到解决-

  1. 如何将AtomFeed 转换为 Json?
  2. 或更改模型以反映 Feed 而无需将其转换为 Json。

我们将不胜感激任何帮助

【问题讨论】:

    标签: flutter dart dart-pub


    【解决方案1】:

    有了这个,你已经有了一个可以反映提要的对象:

    AtomFeed atomFeed = AtomFeed.parse(response.body);
    

    AtomFeed

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      相关资源
      最近更新 更多