用于在Android Studio中生成json_serializable(Flutter/Dart插件)样板代码的工具

gwo2fgha  于 2023-10-13  发布在  Android
关注(0)|答案(4)|浏览(228)

Dart的json_serializable插件,在自动生成一些容易出错和繁琐的代码部分方面做得很好,以换取一些样板:两个方法、一个注解和一个对生成文件的引用。

import 'package:json_annotation/json_annotation.dart';

part 'location.g.dart';

@JsonSerializable()
class Location {
  final double lat;
  final double lng;

  Location(this.lat, this.lng);

  factory Location.fromJson(Map<String, dynamic> json) =>
       _$LocationFromJson(json);

  Map<String, dynamic> toJson() => _$LocationToJson(this);
}

显然,这最好也由机器来完成,比如这个类的构造函数:我只需编写最后一个字段,然后按alt+enter,Android Studio就会为我放置构造函数。
有人知道如何让Android Studio为json_serializable做这件事吗?

mkshixfv

mkshixfv1#

在android studio中安装“Dart json序列化生成器”插件。它将创建选项。

e3bfsja2

e3bfsja22#

有一个名为Dart Data Class Generator(https://marketplace.visualstudio.com/items?itemName=BendixMa.dart-data-class-generator)的Visual Studio代码扩展,可以提供最终字段的列表,甚至是示例JSON文件,它将生成包含许多有用方法的Data Class。它声称:
生成器可以基于类属性或原始JSON为类生成构造函数,copyWith,toMap,fromMap,toJson,fromJson,toString,operator ==和hashCode方法。
如果你是Java方面的,我还看到:https://plugins.jetbrains.com/plugin/12429-dart-data-class但我还没玩过。

eanckbw9

eanckbw93#

我终于写了这个简单的Live Template脚本。您只需输入文件名和字段列表。请看下面的GIF。

import 'package:json_annotation/json_annotation.dart';

part '$NAME$.g.dart'

@JsonSerializable(explicitToJson: true)
class $CAP_NAME$ {
  $END$
  
  $CAP_NAME$();
  
  factory $CAP_NAME$.fromJson(Map<String, dynamic> json) => _$$$CAP_NAME$FromJson(json);
  
  Map<String, dynamic> toJson() => _$$$CAP_NAME$ToJson(this);
}

好吧,在这个简单的解决方案中,上面提到的模板现在正在生成,这对我来说很好,但这确实是一种非常天真的方式,我没有花太多时间学习Live Template脚本。一个改进是使其在构造函数参数列表中写入字段,而不是手动执行。另一种方法是使用文件模板脚本,我没有研究,并可能在一个对话框中创建文件和字段。

8hhllhi2

8hhllhi24#

从插件下载 dart 数据类比右键单击模型类中生成你可以生成

相关问题