如何在 Flutter 中高效地使用大型 JavaScript 文件而不是 JSON 作为题库?

问题描述 投票:0回答:1

我正在开发一个 Flutter 项目,需要实现一个大型测验功能。以前,我使用 JSON 文件来存储问题、答案和选项。但是,现在我想改用 JavaScript 文件 (Questions.js),该文件包含大约 9000 行数据,其结构与 JSON 类似。我面临的挑战是在我的 Flutter Dart 代码中高效加载和使用这些 JavaScript 数据。

Question.js javascript file

由于文件很大,我无法直接将整个内容转换为 JSON,我正在寻找一种在我的 Flutter 应用程序中使用它的方法。

我尝试过的: 我尝试手动将 JavaScript 文件的部分内容转换为 JSON,但考虑到文件大小,这变得不切实际。 我考虑从 JavaScript 文件中获取数据,但不知道如何在 Dart 中正确解析它。 我研究了在 Flutter 中处理大型数据集的替代方案,但大多数建议都集中在使用 API 或数据库,这不适用于我的情况。

我的期望:

我正在寻找一种在 Flutter 中加载和解析 JavaScript 文件中的数据的方法,理想情况下无需将整个文件转换为 JSON。该解决方案应该允许我有效地使用我的测验功能的问题和选项。

javascript json flutter dart
1个回答
1
投票

使用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
  """);
}
© www.soinside.com 2019 - 2024. All rights reserved.