如何在 Flutter 中读取本地 Assets 下的 JSON 文件呢?这里分享两个方法,直接使用就行。我的本地 JSON 文件地址在assets/data/station.json
。
先在pubspec.yaml
依赖这个文件夹,后面如果有其他 JSON 文件也放在这个文件夹下,就不用再次单独依赖。
assets:
- assets/data/
第一种读取方法,使用 rootBundle
,它可以直接使用,然后导包就行。
rootBundle.loadString("assets/data/station.json").then((data){
final jsonResult = jsonDecode(data.toString());
print(jsonResult);
});
第二种读取方法:
DefaultAssetBundle.of(context).loadString("assets/data/station.json").then((value){
final jsonResult = jsonDecode(value);
print(jsonResult);
});
上面代码可以直接使用,只要注意一个点,就是这两个读取方法都是异步方法,我上面使用Future.then
作为异步回调。也可以使用 await
,但如果使用它,要注意搭配 async
使用。
上面是读取 JSON,其中 jsonDecode
是解析 JSON 数据,有需要可以看之前的分享 Flutter 中用 Dart 解析 JSON 对象、数组、嵌套对象等数据。
本文由老郭种树原创,转载请注明:https://guozh.net/how-to-load-json-assets-into-a-flutter-app/