dart - 如何从json结构生成Dart代码

标签 dart flutter code-generation

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/

相关文章:

flutter : How to add a Header Row to a ListView

firebase-authentication - 方法 'signInWithCredential' 未定义

javascript - 从用户输入向元素添加样式

dart - 从 dart 中的对象访问列表

flutter - 如何在 Flutter 的 BottomNavigationBarItem 中更改标签的颜色?

animation - 如何使用 Flutter 更改导航动画

c# - 我可以在 Visual Studio 2010 中自动生成按钮、复选框等的方法吗?

firebase - 如果不存在,则在 firestore 中创建集合( flutter )

dart - 如何使用 Flutter 监听 Cloud Firestore 中的文档更改?

java - 使用 JCodeModel 生成 java 字节码