首页 > 解决方案 > 从 Flutter 中的本地 json 文件获取数据

问题描述

我正在修改我在 github 上找到的存储库,正如您在应用程序下面的代码中看到的那样,该应用程序使用 API,但它位于 dart 文件中。我将该 json 数据复制到“ questions.json”文件中,现在我想做类似的事情(当然这是错误的): var json = 'assets/questions.json';

有什么帮助吗?

  @override
  Future<bool> getQuestions(
      {StreamedList<Question> questions,
      int number,
      Category category,
      QuestionDifficulty difficulty,
      QuestionType type}) async {

    const json = "{\"response_code\":0......here is the json data........}";

    final jsonResponse = convert.jsonDecode(json);

    final result = (jsonResponse['results'] as List).map((question) => QuestionModel.fromJson(question));

    questions.value = result.map((question) => Question.fromQuestionModel(question)).toList();

    return true;
  }

标签: jsonflutterdart

解决方案


如果你想从你的资产文件夹中加载你的数据,你需要两件事:

1) 确保该文件包含在您的文件中pubspec.yaml- 请参阅 yaml 文件关于如何执行此操作的评论。

2) 使用rootBundle. 类似于以下内容:

import 'package:flutter/services.dart';

// code
var data = await rootBundle.loadString('assets/data.json');

推荐阅读