Flutter JsonToDart Mac版 lei了,真的不mark吗

JsonToDart 相关文章

  • Flutter 功能最全的JsonToDart工具(桌面Web海陆空支持)
  • Flutter JsonToDart Mac版 lei了,真的不mark吗
  • Flutter JsonToDart 工具

前面做了C#版本的JsonToDart,支持Windows和Web。

image

很多小伙伴问怎么没有Mac版本的,其实在做C#版本的时候就考虑过用Flutter来下实现flutter-desktop
和flutter-web,但是考虑到自己熟悉的技术以及flutter-desktop和flutter-web现在只是个小白鼠阶段就没有优先考虑。在完成C#版本之后,花了些时间转换成了Dart版本,进而开启了flutter-desktop和flutter-web的填坑之路。。

入坑相关东东

  • flutter
  • flutter-desktop
  • flutter-web
  • go-flutter

其实最近发现很多大佬都入坑了, flutter-desktop
和flutter-web,之前光是看大佬们说,自己没动手做做。

我是mac小白,完全不懂配置,所以看了入坑指南低调大佬,从配置环境到放弃,Flutter Desktop Mac版
和Flutter Web 评测,这是低调大佬写的攻略,只要按照步骤走就可以了。

  • flutter-desktop 没有提供打包方式,全部都是debug版本,所以会出现黄色溢出警告(有谁知道怎么禁止这个警告,请告诉下,感恩)

  • flutter-desktop mac产出未知,也许是因为我不够了解吧。windows是exe,微软粉轻松找到。

  • flutter-desktop 不支持快捷键,比如Ctrl+C,Ctrl+V。后面只有靠go-flutter打包来解决这个问题。如何使用go-flutter打包

  • flutter-web 本地运行没问题,打包发布网页显示异常。 在windows上面打包的时候,注意在cmd/PowerShell里面执行 webdev build。别像我一样用git执行,提示命令找不到

  • flutter-desktop
    和flutter-web没有完整的生命周期,
    没法知道程序关闭的时机,导致我加了一个保存配置按钮(感觉随变随存不太好,特别是有输入框)

一顿操作下来,感觉flutter-desktop
和flutter-web确实只是小白鼠阶段,不过用go-flutter打出来的mac版本,已经足够使用了。

JsonToDart 指南

功能最全面的Json转换Dart的工具,支持Windows,Mac,Web以及Linux。

相关:

  • uwp
  • wpf
  • silverlight
  • flutter
  • flutter-desktop
  • flutter-web
  • go-flutter
  • go
  • hover

Flutter Candies qq群181398081

  • 下载
  • 安装
    • UWP(Windows10)
    • WPF(Windows7/Windows8)
    • Silverlight(Web)
    • Flutter(Mac)
    • Flutter(Windows_x64)
  • 使用
    • 格式化
    • 更多设置
      • 数据类型全方位保护
      • 数组全方位保护
      • 遍历数组次数
      • 属性命名
      • 属性排序
      • 添加保护方法
      • 文件头部信息
      • 属性访问器类型
    • 修改json类信息
    • 生成Dart

下载

平台 语言 描述 代码/安装包地址
windows C# uwp构建,运行环境windows10,x86/x64 windows-uwp.zip
windows C# wpf构建,运行环境windows10/windows8/widnows7,x86/x64 windows-wpf.zip
windows dart flutter构建, 使用官方方式编译,x64 ,debug版本 windows-x64-flutter.zip
windows dart flutter构建, 使用go-flutter编译,x64 ,debug版本 windows-x64-go-flutter.zip
mac dart flutter构建,使用go-flutter编译(官方方式,未找到产物) mac-go-flutter.zip
web C# silverlight构建, 需要安装silverlight插件,有浏览器限制 网页地址和带字体文件网页地址
web dart flutter-web构建 网页地址
linux dart flutter构建, 使用官方方式编译,(没有环境测试,假装可以用) 代码地址

安装

UWP(Windows10)

Windows10 用户

考虑到应用商店经常大姨妈,就没有上传到商店了。

下载好安装包,解压。

第一次安装,需要安装证书,请按照下图,使用PowerShell打开Add-AppDevPackage.ps1,一路接受就安装完毕

image

后面如果工具有更新,可以下载最新的,然后点击FlutterCandiesJsonToDart_x.0.x.0_x86_x64.appxbundle 安装

image

WPF(Windows7/Windows8)

Windows7/Windows8 用户

下载解压,点击setup.exe安装

image

Silverlight(Web)

带字体文件是因为可能有乱码,由于中文字体问题,包含了中文字体文件,第一次会比较久,请耐心等待

首先需要安装Silverlight

Mac的用户下载Mac的,Windows用户下载Windows的

然后就是浏览器问题了,因为支持Silverlight的浏览器是有限的,除了Internet Explorer支持,以下版本的浏览器也支持.

image

Mac Safari 12.0以下的可以尝试这样开启插件

Mac Firefox这个版本能使用

Flutter(Mac)

go-flutter生成的产物是二进制程序,运行为exec,可以双击打开,
后由低调大佬测试打包DMG,安装即可,注意在安全性与隐私中同意安装,具体如何打包可以查看Go Flutter Desktop (二) go 二进制程序打包为 mac app(dmg)

Flutter(Windows_x64)

flutter官方产物或者go-flutter产物为exe,点击exe启动

使用

image

左边是json的输入框以及最后Dart生成的代码,右边是生成的Json类的结构

格式化

点击格式化按钮,将json转换为右边可视化的json类结构

更多设置

设置会全部自动保存(flutter版本除外,需要手动保存),一次设置终身受益

数据类型全方位保护

大家一定会有被服务端坑的时候吧? 不按规定好了的数据类型传值,导致json整个解析失败。

打开这个开关,就会在获取数据的时候加一层保护,代码如下

T asT(dynamic value) {
  if (value is T) {
    return value;
  }
  if (value != null) {
    final String valueS = value.toString();
    if (0 is T) {
      return int.tryParse(valueS) as T;
    } else if (0.0 is T) {
      return double.tryParse(valueS) as T;
    } else if ('' is T) {
      return valueS as T;
    } else if (false is T) {
      if (valueS == '0' || valueS == '1') {
        return (valueS == '1') as T;
      }
      return bool.fromEnvironment(value.toString()) as T;
    }
  }
  return null;
}

数组全方位保护

在循环数组的时候,一个出错,导致json整个解析失败的情况,大家遇到过吧?

打开这个开关,将对每一次循环解析进行保护,代码如下

void tryCatch(Function f) {
  try {
    f?.call();
  } catch (e, stack) {
    debugPrint("$e");
    debugPrint("$stack");
  }
}

遍历数组次数

在服务器返回的数据中,有时候数组里面不是每一个item都带有全部的属性,

如果只检查第一个话,会存在属性丢失的情况

你可以通过多次循环来避免丢失属性

选项有1,20,99

99就代表循环全部进行检查

属性命名

属性命名规范选项:保持原样,驼峰式命名小驼峰,帕斯卡命名大驼峰,匈牙利命名下划线

Dart 命名规范

Dart 官方推荐 驼峰式命名小驼峰

属性排序

对属性进行排序

排序选项: 保持原样,升序排列,降序排序

添加保护方法

是否添加保护方法。数据类型全方位保护/数组全方位保护 这2个开启的时候会生成方法。第一次使用的时候开启就可以了,你可以方法提出去,后面生成Dart就没有必要每个文件里面都要这2个方法了。

文件头部信息

可以在这里添加copyright,improt dart,创建人信息等等,支持[Date yyyy MM-dd]来生成时间,Date后面为日期格式。

比如[Date yyyy MM-dd] 会将你生成Dart代码的时间按照yyyy MM-dd的格式生成对应时间

属性访问器类型

点击格式化之后,右边会显示可视化的json类结构,在右边一列,就是属性访问器类型设置

image

选项:默认,Final,Get,GetSet

顶部设置修改,下面子项都会修改。你也可以单独对某个属性进行设置。

修改json类信息

点击格式化之后,右边会显示可视化的json类结构。

第一列为在json中对应的key

第二列为属性类型/类的名字。如果是类名,会用黄色背景提示

第三列是属性的名字

输入选项如果为空,会报红提示

生成Dart

做好设置之后,点击生成Dart按钮,左边就会生成你想要的Dart代码,并且提示“Dart生成成功,已复制到剪切板”,可以直接复制到你的Dart文件里面

是不是很方便很人性化,欢迎Start,Fork,666三连。

最后放上 Josn To Dart,如果你有什么不明白或者对这个方案有什么改进的地方,请告诉我,欢迎加入Flutter Candies,一起生产可爱的Flutter 小糖果(QQ群:181398081)

再次邀请,有心为Flutter生态做贡献的小伙伴加入Flutter Candies,一起开心地写bug。

image

最最后放上Flutter Candies全家桶,真香。

image

你可能感兴趣的:(Flutter JsonToDart Mac版 lei了,真的不mark吗)