在 Android Studio 中生成 json_serialized(Flutter/Dart 插件)样板代码的快捷方式

问题描述 投票:0回答:4
Dart 的

json_serialized 插件,可以很好地自动生成一些容易出错且繁琐的代码部分,以换取一些样板文件:两个方法、一个注释和一个对生成文件的引用。

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_serialized 做到这一点吗?

android-studio flutter dart auto-generate json-serializable
4个回答
3
投票

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


1
投票

有一个名为 Dart Data Class Generator (https://marketplace.visualstudio.com/items?itemName=BendixMa.dart-data-class-generator) 的 Visual Studio Code 扩展,可以给出最终字段列表,甚至是一个示例 JSON 文件,它将生成包含许多有用方法的数据类。它声称:

生成器可以根据类属性或原始 JSON 生成类的构造函数、copyWith、toMap、fromMap、toJson、fromJson、toString、operator == 和 hashCode 方法。

如果你在Java方面,我也看到:https://plugins.jetbrains.com/plugin/12429-dart-data-class但我还没有玩过。


1
投票

我终于写了这个简单的实时模板脚本。您只需输入文件名和字段列表。请参阅下面的动图。

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);
}

嗯,在这个简单的解决方案中,现在正在生成提到的样板,这对我来说效果很好,但这确实是一种非常幼稚的方式,我没有投入太多时间来学习实时模板脚本。一项改进是让它将字段写入构造函数参数列表中,而不是手动执行。另一种方法是使用文件模板脚本(我没有研究过),并可能在对话框中创建文件和字段。


0
投票

从插件中下载 Dart 数据类,然后在生成中的模型类中右键单击即可生成

© www.soinside.com 2019 - 2024. All rights reserved.