如何在 flutter 中从不同的包中读取资产 JSON 文件?
How to read assets JSON file from different package in flutter?
我正在开发一个 flutter 应用程序,我在其中为主应用程序使用了多个插件
main_app
-plugin1
-example
-plugin2
-example
-plugin3
--example
package as well
- <package_name>
每个插件都有自己的示例文件夹,这有助于我测试 UI 和大多数 UI 使用常见的图像和图标,这些图像和图标分别保存在纯 flutter 包中:
framework_utilities:<--(package)
assets:
- assets/
- assets/images/green/2x/
- assets/mockup/reg_state.json <--- JSON file
lib
src
constant
并且我可以通过传递包引用来访问图像和图标:
Image.asset("assets/barcode.png", package: "framework_utilities", width: 70.0, height: pad_30),
现在我的要求是我想在不将 json 文件包含到主应用程序级别的情况下模拟整个应用程序。
如果我在主应用程序的资产文件夹中包含 json 文件,它工作正常,但我不想在我想保留的插件和应用程序中制作 json 文件的副本它在一个地方并阅读它。
我试过了
rootBundle.loadString('assets/reg_state.json')
它仅适用于单个插件示例级别。
为什么我需要读取 json 文件?
如果我模拟主应用程序或单个插件,那么我可以提供一个虚拟 json 数据来查看 UI。
我是如何解决这个问题的:
在您的主应用程序中导入包和插件 pubspec.yaml
文件
registration_plugin:
path: ../registration_plugin <--- this is plugin
framework_utils:
path: ../framework_utils <--- this is package
我在 framework_utils 资产文件夹中有 json 个文件和图标,例如:
assets:
- assets/
- assets/images/green/2x/
- assets/reg_state.json
- assets/user_state.json
现在,如果您想阅读此文件或插件中的图标,我将调用如下代码:
图片
Image.asset("assets/user.png", package: "framework_utils", width: 70.0, height: pad_30),
对于JSON 文件
String path = 'packages/framework_utils/assets/user_state.json';
String jobsString = await rootBundle.loadString(path);
List<dynamic> users = await jsonDecode(jobsString);
这是适合我的解决方案。
我正在开发一个 flutter 应用程序,我在其中为主应用程序使用了多个插件
main_app
-plugin1
-example
-plugin2
-example
-plugin3
--example
package as well
- <package_name>
每个插件都有自己的示例文件夹,这有助于我测试 UI 和大多数 UI 使用常见的图像和图标,这些图像和图标分别保存在纯 flutter 包中:
framework_utilities:<--(package)
assets:
- assets/
- assets/images/green/2x/
- assets/mockup/reg_state.json <--- JSON file
lib
src
constant
并且我可以通过传递包引用来访问图像和图标:
Image.asset("assets/barcode.png", package: "framework_utilities", width: 70.0, height: pad_30),
现在我的要求是我想在不将 json 文件包含到主应用程序级别的情况下模拟整个应用程序。
如果我在主应用程序的资产文件夹中包含 json 文件,它工作正常,但我不想在我想保留的插件和应用程序中制作 json 文件的副本它在一个地方并阅读它。
我试过了
rootBundle.loadString('assets/reg_state.json')
它仅适用于单个插件示例级别。
为什么我需要读取 json 文件?
如果我模拟主应用程序或单个插件,那么我可以提供一个虚拟 json 数据来查看 UI。
我是如何解决这个问题的:
在您的主应用程序中导入包和插件 pubspec.yaml
文件
registration_plugin:
path: ../registration_plugin <--- this is plugin
framework_utils:
path: ../framework_utils <--- this is package
我在 framework_utils 资产文件夹中有 json 个文件和图标,例如:
assets:
- assets/
- assets/images/green/2x/
- assets/reg_state.json
- assets/user_state.json
现在,如果您想阅读此文件或插件中的图标,我将调用如下代码:
图片
Image.asset("assets/user.png", package: "framework_utils", width: 70.0, height: pad_30),
对于JSON 文件
String path = 'packages/framework_utils/assets/user_state.json';
String jobsString = await rootBundle.loadString(path);
List<dynamic> users = await jsonDecode(jobsString);
这是适合我的解决方案。