【问题标题】:How to generate Dart code from json structure如何从 json 结构生成 Dart 代码
【发布时间】:2019-07-02 22:38:07
【问题描述】:

code_build (https://pub.dartlang.org/packages/code_builde) 包提供了为该类生成类和构造函数、字段和方法的解决方案。

我的最终目标是根据给定的 json 结构生成 Flutter (https://flutter.io) Widget,但我不知道如何使用 code_build 或其他包来做到这一点。

因此,我们将不胜感激!

【问题讨论】:

    标签: dart flutter code-generation


    【解决方案1】:

    编写输出 Dart 代码的一般方法是将功能包装在 Builder 中并使用 build_runner 执行代码生成

    在高层次上,你会写一个Builder

    • 拥有buildExtensions{".json": [".dart"]}
    • 读入buildStep.inputId资产并解析json。
    • 使用code_builder 构建字符串,然后将其写入输出资产。

    那么你会configure the builder in build.yaml。并且可以手动将其应用到您的包中,或者如果您想将其作为实用程序发布,它可以应用于依赖项。

    您的包将在build_runner 上有一个dev_dependency,然后您可以使用flutter packages run build_runner build 执行构建。

    https://github.com/dart-lang/build/tree/master/docs 有更多文档

    您可以看到一个执行类似操作的包示例 - 从 yaml 文件开始并使用 code_builder https://github.com/natebosch/message_builder 输出 Dart 文件

    【讨论】:

      【解决方案2】:

      如果您只想构建模型类,现在有一个在线工具可以从 JSON 有效负载生成 Dart 类。它不会在运行时动态执行,但在您第一次构建程序时非常有用。

      https://javiercbk.github.io/json_to_dart/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-22
        • 1970-01-01
        • 2020-10-16
        • 1970-01-01
        • 2022-09-28
        • 2020-02-29
        • 2015-06-09
        • 2022-10-20
        相关资源
        最近更新 更多