【发布时间】:2021-02-13 18:42:16
【问题描述】:
我正在使用 Flutter 并尝试在我的资产文件夹中打开一个 json 文件。我发现我可以使用 File() 方法,但它似乎只采用绝对路径。有没有办法可以将其转换为相对路径?我已经尝试使用文件的相对路径,但它返回一个错误,说没有这样的文件。
这是目前为止的代码。基本上我想获取 json 文件,并将其作为字符串返回(在下面的函数 readFileSync() 中)。然后我使用该数据创建一个 List 对象。如果有更好的方法将文件读入 Flutter,我也愿意!
List<Answers> myFunction2() {
String arrayObjsText = readFileSync();
//print(arrayObjsText);
var tagObjsJson = jsonDecode(arrayObjsText)['tags'] as List;
var tagObjs =
tagObjsJson.map((tagJson) => Answers.fromJson(tagJson)).toList();
return tagObjs;
}
String readFileSync() {
String contents = new File(
'/Users/pstumbaugh/Documents/Computer Science/CS492 Mobile Dev/Dart-Flutter-CallMeMaybe/project3/assets/answers.json')
.readAsStringSync();
return contents;
}
我不太了解 Futures 的工作原理。我尝试了这些,但似乎它总是返回一个 Future 并且我不确定如何将它解压缩为一个字符串,而不必使所有内容都成为异步函数,然后当我尝试获取 List 时会导致问题我在主页上的小部件...
【问题讨论】: