我在 flutter 目录中有一个 JSON 文件,而不是资产中。
json_data.json:-
{
"foo" : "bar"
}
Run Code Online (Sandbox Code Playgroud)
我想在不同的文件上阅读这个 JSON。
喜欢
myfile.dart:-
import "package:mypackage/json_data.json" as data;
import 'dart:convert';
var my_data = json.decode(data);
Run Code Online (Sandbox Code Playgroud)
我收到错误:-
The name 'data' refers to an import prefix, so it must be followed by '.'.
Try correcting the name to refer to something other than a prefix, or renaming the prefix.
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?为什么我不能在颤振中从本地导入读取 JSON?
Chr*_*ore 20
您应该研究在 flutter 中加载资产。您不能简单地导入任意文件。导入用于源代码/库。
您需要将此文件声明为您的资产 pubspec.yaml
flutter:
assets:
- json_data.json
Run Code Online (Sandbox Code Playgroud)
然后在您的代码中,您可以将此资产加载为String:
flutter:
assets:
- json_data.json
Run Code Online (Sandbox Code Playgroud)
您可以使用现有代码对 JSON 进行解码,但应将其放置在某个方法主体中。您调用此getJson函数来检索 JSON 字符串:
import 'package:flutter/services.dart' show rootBundle;
Future<String> getJson() {
return rootBundle.loadString('json_data.json');
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过将 JSON 文件的内容直接作为String.
var my_data = json.decode(await getJson());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13269 次 |
| 最近记录: |