我正在开发一个 Flutter 项目,需要实现一个大型测验功能。以前,我使用 JSON 文件来存储问题、答案和选项。但是,现在我想改用 JavaScript 文件 (Questions.js),该文件包含大约 9000 行数据,其结构与 JSON 类似。我面临的挑战是在我的 Flutter Dart 代码中高效加载和使用这些 JavaScript 数据。
由于文件很大,我无法直接将整个内容转换为 JSON,我正在寻找一种在我的 Flutter 应用程序中使用它的方法。
我尝试过的: 我尝试手动将 JavaScript 文件的部分内容转换为 JSON,但考虑到文件大小,这变得不切实际。 我考虑从 JavaScript 文件中获取数据,但不知道如何在 Dart 中正确解析它。 我研究了在 Flutter 中处理大型数据集的替代方案,但大多数建议都集中在使用 API 或数据库,这不适用于我的情况。
我的期望:
我正在寻找一种在 Flutter 中加载和解析 JavaScript 文件中的数据的方法,理想情况下无需将整个文件转换为 JSON。该解决方案应该允许我有效地使用我的测验功能的问题和选项。
使用rootBundle加载并解析JSON数据,如下所示:
import 'dart:convert';
import 'package:flutter/services.dart' show rootBundle;
Future<void> loadQuestions() async {
String data = await rootBundle.loadString('assets/questions.json');
List<dynamic> questions = json.decode(data);
// Now you can access the questions and answers as a Dart list
}
import 'package:flutter_js/flutter_js.dart';
void parseQuestions() {
final jsRuntime = getJavascriptRuntime();
jsRuntime.evaluate("""
// Your JavaScript parsing code here
// Access specific objects and return the required values
""");
}