zoukankan      html  css  js  c++  java
  • Flutter json转实体类(插件自动生成)

    Json数据转成实体类的好处
    将Json数据转成实体类可以方便我们开发的时候使用数据,手动输入字段名称的话很容易出错,并且接口多的话很不好维护。

    Flutter中是否有Gson、FastJson这样的库
    在Android原生开发中,我们有很好用的Gson、FastJson等第三方库来帮助我们将json转成实体类。但是,在Flutter中可能不会有这样的第三方库供我们使用了,详细原因请看 JSON and serialization

    Flutter 中如何处理Json
    Flutter给我们提供了 dart:convert 包,我们可以通过

    json.decode(json)  来序列化json

    例子:
    json数据如下:

    {
        "reason": "成功的返回",
        "result": {
            "stat": "1",
            "data": [{
                "uniquekey": "0bb54602fcc15111afca8452cc127d57",
                "title": "口香糖销量下降30%,你一定猜不到原因",
                "date": "2019-03-06 12:55",
                "category": "头条",
                "author_name": "解放网",
                "url": "http://mini.eastday.com/mobile/190306125558115.html",
                "thumbnail_pic_s": "http://01imgmini.eastday.com/mobile/20190306/20190306125558_d2b6545a4b6273201218c32c6ffe436a_1_mwpm_03200403.jpg"
            }, {
                "uniquekey": "c92887585d01563c077c7be7f23dca87",
                "title": "《还珠格格》中的演员都老了,网友:五阿哥还是很帅",
                "date": "2019-03-06 12:44",
                "category": "头条",
                "author_name": "北青网",
                "url": "http://mini.eastday.com/mobile/190306124440102.html",
                "thumbnail_pic_s": "http://04imgmini.eastday.com/mobile/20190306/20190306124440_bfad5f823d7fcad5e044754e095278ef_1_mwpm_03200403.jpg",
                "thumbnail_pic_s02": "http://04imgmini.eastday.com/mobile/20190306/20190306124440_bfad5f823d7fcad5e044754e095278ef_4_mwpm_03200403.jpg",
                "thumbnail_pic_s03": "http://04imgmini.eastday.com/mobile/20190306/20190306124440_bfad5f823d7fcad5e044754e095278ef_2_mwpm_03200403.jpg"
            }]
        },
        "error_code": 0
    }

    我们可以通过:

    首先记得先导包:

    import 'dart:convert';

    然后:

    /*将字符串转成json  返回的是键值对的形式*/
        Map<String, dynamic> news = jsonDecode(jsonData);
        /*取值*/
        String sats = news['result']['stat'];

    可以看到,我们这样取值是需要手动的敲字段来获取数据的,一旦字段比较多的话,就很麻烦

    Flutter Json转实体类(一键生成)
    在开发过程中,我们一般都是使用插件或工具一键生成实体类的,这样极大的提高了开发效率,目前我们可以通过在线生成和安装插件生成的方式来一键生成Dart类。

    方式一:在线生成

    使用步骤:

    1.首先打开 json_to_dart
    页面如下:

    2.将json数据赋值到输入框中,点击创建Dart类,然后右边就是生成好的Dart代码,类名可以复制到编辑器后自行修改


    3.创建一个Dart类,将类名自行修改一下

     

    4,使用方式如下

     /*先将字符串转成json*/
        Map<String, dynamic> json = jsonDecode(jsonData);
        /*将Json转成实体类*/
        NewsBean newsBean=NewsBean.fromJson(news);
        /*取值*/
        String sats = newsBean.result.stat;

    方式二:安装FlutterJsonBeanFactory插件生成

    首先安装FlutterJsonBeanFactory这个插件,安装方式很简单,这里我就不说了。

    安装完成后右键包目录,选择new
    在这里插入图片描述

    然后选择dart bean class File from JSON

    在这里插入图片描述

    然后将json数据粘贴至输入框,输入类名,点击make即可
    在这里插入图片描述

    这样实体类就生成好了


    用插件生成也是很方便的。

    如果你觉得本文对你有帮助,麻烦动动手指顶一下,算是对本文的一个认可。也可以关注我的 Flutter 博客专栏,我会不定期的更新,如果文中有什么错误的地方,还望指正,转载请注明转自喻志强的博客 ,谢谢!

    点赞 8
    ————————————————
    版权声明:本文为CSDN博主「XeonYu」的原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/yuzhiqiang_1993/java/article/details/88533166

  • 相关阅读:
    LeetCode 226. Invert Binary Tree
    LeetCode 221. Maximal Square
    LeetCode 217. Contains Duplicate
    LeetCode 206. Reverse Linked List
    LeetCode 213. House Robber II
    LeetCode 198. House Robber
    LeetCode 188. Best Time to Buy and Sell Stock IV (stock problem)
    LeetCode 171. Excel Sheet Column Number
    LeetCode 169. Majority Element
    运维工程师常见面试题
  • 原文地址:https://www.cnblogs.com/Im-Victor/p/12667074.html
Copyright © 2011-2022 走看看