code_build
( https://pub.dartlang.org/packages/code_builde ) 包提供了一个为该类生成类和构造函数、字段和方法的解决方案。
我的最终目标是根据给定的 json 结构生成 Flutter ( https://flutter.io) Widget,但我不知道如何使用 code_build
或其他包来实现。
因此,我们将不胜感激!
最佳答案
编写输出 Dart 代码的东西的一般方法是将功能包装在 Builder
中。并使用 build_runner
执行代码生成
在较高层次上,您将编写一个 Builder
:
- 具有
buildExtensions
的{".json": [".dart"]}
。 - 读取
buildStep.inputId
Assets 并解析 json。 - 使用
code_builder
构建一个字符串,然后将其写入输出 Assets 。
然后你会 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 有更多文档
您可以在 https://github.com/natebosch/message_builder 看到一个执行类似操作的包示例 - 从 yaml 文件开始并使用 code_builder
输出 Dart 文件
关于dart - 如何从json结构生成Dart代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53270688/