颤振-读取JSON文件时没有此类文件或目录的错误
您好,我正在尝试将JSON转换为对象,但当我读取文件时,它引发了一个异常: FileSystemException:无法打开文件,路径='D:/AndroidStudio/my_app/assets/data/questions.json'(操作系统错误:没有这样的文件或目录,errno=2) 代码如下:颤振-读取JSON文件时没有此类文件或目录的错误,json,dart,flutter,Json,Dart,Flutter,您好,我正在尝试将JSON转换为对象,但当我读取文件时,它引发了一个异常: FileSystemException:无法打开文件,路径='D:/AndroidStudio/my_app/assets/data/questions.json'(操作系统错误:没有这样的文件或目录,errno=2) 代码如下: String loadQuestionAsset() { String jsonString; new File('D:/AndroidStudio/my_app/assets/dat
String loadQuestionAsset() {
String jsonString;
new File('D:/AndroidStudio/my_app/assets/data/questions.json').readAsString().then((String contents) {
jsonString = contents;
});
return jsonString;
}
List<Question> parseJsonForQuestion() {
Map decoded = jsonDecode(loadQuestionAsset());
List<Question> questions = new List<Question>();
for (var question in decoded['questions']) {
questions.add(new Question(question['question'], question['bool']));
}
return questions;
}
感谢您的帮助:)您需要提供的路径是:
assets/data/questions.json
现在,为了读取它,您还必须将其添加到pubspec.yaml
文件中的资产中
flutter:
assets:
- data/questions.json
然后,为了阅读,您应该使用:
我希望它能起作用:)您可以:
String loadQuestionAsset() {
String jsonString;
File('D:/AndroidStudio/my_app/assets/data/questions.json').create().readAsString().then(String contents) {
jsonString = contents;
});
return jsonString;
}
非常感谢你的帮助,但我就是不能让它工作。我按照你说的做了,但现在它返回Future而不是Future,因为它是一个异步函数。您确定没有删除
wait
关键字吗?无论如何,我建议您阅读Dart中异步函数的工作原理:。它可能会解决您的问题;)
Map map = await rootBundle
.loadStructuredData('assets/data/questions.json', (String s) async {
return json.decode(s);
});
String loadQuestionAsset() {
String jsonString;
File('D:/AndroidStudio/my_app/assets/data/questions.json').create().readAsString().then(String contents) {
jsonString = contents;
});
return jsonString;
}