美文网首页Flutter
Flutter工具之Dart中几种常用的Json转Object方

Flutter工具之Dart中几种常用的Json转Object方

作者: 违规ID9633 | 来源:发表于2019-08-16 17:20 被阅读2次

    前言

    Json这东西在大部分开发中是不可少的。所以接下来罗列几种最近学习Flutter中个人常用的几种Json转Object的方式。

    网页工具

    某大神提供的JSON to Dart的网页版工具,点进去你就会用了。如图,简单明了,没什么可说。

    {E2893195-1D7B-486C-9E2F-C1B4558D3A87}.jpg

    目前发现的缺点数组格式json无法直接转

    json_serializable

    刚开始学习的时候在某博客看到的(忘记是哪个了),整体操作比较繁琐。以下是该工具的GitHub地址,及使用步骤。

    github

    https://github.com/dart-lang/json_serializable

    集成

    在pubspec.yaml文件中添加dio和json_serializable的相关插件

    dependencies:
      flutter:
        sdk: flutter
    
      dio: ^2.1.3 #网络请求
      json_annotation: ^0.2.3
    
    dev_dependencies:
      flutter_test:
        sdk: flutter
    
      #这两个是dev的,不要放到上面去了哦
      build_runner: ^0.9.0
      json_serializable: ^2.0.00
    
    

    创建model

    通过这个网址生成dar文件,效果如下图:

    TIM图片20190816165606.png

    生成的with混合类 如果没用可删除

    命令生成.g文件

    在项目根目录下输入命令:flutter packages pub run build_runner build,
    完成之后会在bean.dart同级目录下,自动创建一个名为bean.g.dart的文件

    如果有其他.g文件存在影响,可用这个命令flutter packages pub run build_runner build --delete-conflicting-outputs

    FlutterJsonBeanFactory插件

    插件安装

    使用AndroidStudio/Idea的朋友可以到Setting->Plugins中安装

    使用

    在你要写bean的目录右击->New->dart bean class File from JSON,如图:

    TIM图片20190816155858.png

    在弹出的界面写上文件名,粘上json格式


    TIM图片20190816160239.png
    • 生成的文件名后面会自动加上_entity
    • 同第一个一样,数组格式的json也无法直接生成

    手写

    你懂的!

    PS:关于数组json

    如下格式json数组,在工具1跟3是无法直接生成的。

    [
      {
        "howlong": "30",
        "id": "1",
        "name": "一个月",
        "price": "50.05"
      }
    ]
    

    这一类的可以直接生成数组内的Object对象,然后再对应文件添加获取对象的方法即可,如:

    List<Bean> getBeanList(List<dynamic> list){
        List<Bean> result = [];
        list.forEach((item){
          result.add(Bean.fromJson(item));
        });
        return result;
      }
    

    尾记

    因时常会忘记,所以这就当一个小总结吧。各位道友可根据不同场景选择使用,也欢迎推荐其他的方式。如有错误,请指正。

    相关文章

      网友评论

        本文标题:Flutter工具之Dart中几种常用的Json转Object方

        本文链接:https://www.haomeiwen.com/subject/empqsctx.html