【问题标题】:Auto-generate class and member from json file in Flutter在 Flutter 中从 json 文件自动生成类和成员
【发布时间】:2021-04-16 05:04:47
【问题描述】:

我有一个简单的 json 文件,如下所示。这是在项目中修复的。

{
    "en": "English",
    "es": "Español",
    "fr": "Français"
}

我的问题是,是否可以通过自动生成工作来创建一个包含返回每个键值的成员的类?自动生成的结果可能类似于以下示例。所以每次我向 json 文件中添加新的键和值时,这个类都会生成或更新该新项目。

class JsonHelper {
    static String get en => json['en'];

    static String get es => json['es'];

    static String get fr => json['fr'];
}

【问题讨论】:

    标签: json flutter dart auto-generate


    【解决方案1】:

    你可以使用这个网站在 Flutter 中自动生成类:

    https://app.quicktype.io/?share=pxoAci2ZiiPtLyjXaYhD

    另一种方法是使用 npm 的自动生成器包

    【讨论】:

      【解决方案2】:

      是的,你可以在这个网站上使用 Flutter 中的自动生成类:Instantly parse Json

      Example

      // To parse this JSON data, do
      //
      //     final autoGenerate = autoGenerateFromJson(jsonString);
      
      import 'dart:convert';
      
      AutoGenerate autoGenerateFromJson(String str) => AutoGenerate.fromJson(json.decode(str));
      
      String autoGenerateToJson(AutoGenerate data) => json.encode(data.toJson());
      
      class AutoGenerate {
          AutoGenerate({
              this.en,
              this.es,
              this.fr,
          });
      
          String en;
          String es;
          String fr;
      
          factory AutoGenerate.fromJson(Map<String, dynamic> json) => AutoGenerate(
              en: json["en"],
              es: json["es"],
              fr: json["fr"],
          );
      
          Map<String, dynamic> toJson() => {
              "en": en,
              "es": es,
              "fr": fr,
          };
      }

      然后你可以简单地使用final objectFromClass = autoGenerateFromJson(jsonString)

      【讨论】:

        猜你喜欢
        • 2021-01-17
        • 2020-09-21
        • 1970-01-01
        • 2021-09-28
        • 1970-01-01
        • 1970-01-01
        • 2016-02-25
        • 2011-08-08
        • 1970-01-01
        相关资源
        最近更新 更多