程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何将JSON资产加载到Flutter App中大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何将JSON资产加载到Flutter App中?

开发过程中遇到如何将JSON资产加载到Flutter App中的问题如何解决?下面主要结合日常开发的经验,给出你关于如何将JSON资产加载到Flutter App中的解决方法建议,希望对你解决如何将JSON资产加载到Flutter App中有所启发或帮助;

@Alexandre Beaudet的回答是正确的,但没有给出很多有关正在发生的情况的背景信息。

在调用时loadString它实际上是一个异步方法调用。您可以知道,因为它返回的是一个Future<value>而不是一个value。这意味着它不会立即得到String的结果,但是会在将来的某个时候出现。

在Dart中,有两种处理异步性的主要方法:第一个是使用asyncawait,第二个是直接使用期货。请参阅有关异步编程的飞镖指南。

如果future.then直接使用,则可以通过常规函数(即initState等)来实现。您只需指定回调,然后在回调中处理结果。

voID printDailyNewsDigest() {
  final future = gatherNewsReports();
  future.then((news) => print(news));
}

如果要使用await@Alexandre所示的方法,则需要将使用它的函数从标记为async,即:

Future<VoID> printDailyNewsDigest() async {
  String news = await gatherNewsReports();
  print(news);
}

如果覆盖一个函数(即initState),则还需要确保不更改返回值。多数情况下,这应该会被dart 2的输入捕获,但是voID-> Future似乎不是。

最后要注意的一件事- 如果您正在使用数据结果来构建窗口小部件,则可能需虑使用FutureBuilder。

解决方法

如何将JSON资产加载到Flutter应用程序中?

我的pubspec.yaml文件具有以下内容:

  assets:
    - assets/data.json

我一直无法尝试加载数据。我试过了

final json = JSON.decode(
    DefaultAssetBundle.of(context).loadString("assets/data.json")
);

但是我得到了错误

谢谢!

大佬总结

以上是大佬教程为你收集整理的如何将JSON资产加载到Flutter App中全部内容,希望文章能够帮你解决如何将JSON资产加载到Flutter App中所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。