繁体   English   中英

¿ 如何读取 flutter 中的本地 json 文件?

[英]¿How to read local json files in flutter?

我读过很多帖子,有人解释了如何做,但就我而言,它不起作用,我不知道为什么,我已将正确的文件夹添加到 pubspec.yaml 和所有内容,这是我的代码

import 'package:flutter/material.dart';
import 'dart:convert';
import 'package:flutter/services.dart';
import 'package:flutter/cupertino.dart';
import 'package:workout_time/Widgets/routines_widget.dart';

void main() => runApp(WorkoutTime());

class WorkoutTime extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'My Great App',
      home: Scaffold(
        body: RoutinesWidget(),
      ),
    );
  }
}

class RoutinesWidget extends StatefulWidget {
  @override
  _RoutinesWidgetState createState() => _RoutinesWidgetState();
}

class _RoutinesWidgetState extends State<RoutinesWidget> {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: FutureBuilder(
        future: rootBundle.loadString("assets/data.json"),
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return CircularProgressIndicator();
          }
          var myData = jsonDecode(snapshot.data.toString());
          return Center(
            child: Text(myData == null ? "Nothing here" : myData),
          );
        },
      ),
    );
  }
}

当我运行它时,我得到了 CircularProgressIndicator 小部件,这意味着快照没有数据。 谁能帮我?

编辑:这是 pubspec.yaml 中我导入文件夹的部分:

assets:
  - assets/
  #   - images/a_dot_burr.jpeg
  #   - images/a_dot_ham.jpeg

代码 - pubspec.yaml

资产:-资产/json/

代码 - 在 Class

   static Map<dynamic, dynamic> jsonData;
    loadJson() async {
      String jsonContent = await rootBundle.loadString("assets/json/data.json");
      jsonData = json.decode(jsonContent);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM