flutter读取项目中的json文件数据

前言

网上有很多读取的,但对于小白的我来说(刚接触flutter一周,dart完全不懂),从项目中读取 xxx.json文件,并将文件中的json内容转换为string对象是困难的,话不多说直接上代码

环境准备

由于我是在自己项目中实现的,有环境,及依赖需要引入,就全部都贴出来

import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';

以下是yaml文件的依赖引入

dependencies:
  flutter:
    sdk: flutter
  image_picker: ^0.4.12
  camera: ^0.2.9+1
  video_player: ^0.5.2
  path_provider: ^0.4.1
  local_auth: ^0.3.0
  flutter_screenutil: ^0.4.2

项目中需要存在的json文件,data/currency.json;并且需要在yaml中注册

[
  {"ccy":"01","swccy":"TWD","chname":"新台币"},
  {"ccy":"02","swccy":"CYN","chname":"人民币"},
  {"ccy":"14","swccy":"USD","chname":"美元"}
]
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  assets:
      - data/currencies.json
      - data/accountTypy.json
      - data/currency.json

直接上代码

import 'dart:async';
import 'dart:convert';
import 'dart:io';


import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';

/**
 * @Author:xcl_pccw
 * @Date: 2019-1-5
 */

class VB_POC_2_2_CreateAccount_Input extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new VB_POC_2_2_CreateAccount_Input_state();
  }
}

class VB_POC_2_2_CreateAccount_Input_state
    extends State<VB_POC_2_2_CreateAccount_Input> {
  List<dynamic> data;




  @override
  void initState() {
       Future<String> loadString = DefaultAssetBundle.of(context).loadString("data/currency.json");

       loadString.then((String value){
      // 通知框架此对象的内部状态已更改
      setState((){
        // 将参数赋予存储点击数的变量
        data = json.decode(value);
      });
    });
  }

  @override
  Widget build
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter 可以使用以下方法保存 JSON 数据: 1. 使用 shared_preferences 插件保存数据到本地。这个插件提供了一种简单的 key-value 存储方式,可以用来保存 JSON 数据。以下是保存和读取 JSON 数据的示例代码: ```dart import 'package:shared_preferences/shared_preferences.dart'; import 'dart:convert'; // 保存 JSON 数据 saveData(Map<String, dynamic> data) async { SharedPreferences prefs = await SharedPreferences.getInstance(); String jsonData = json.encode(data); prefs.setString('jsonData', jsonData); } // 读取 JSON 数据 Future<Map<String, dynamic>> loadData() async { SharedPreferences prefs = await SharedPreferences.getInstance(); String jsonData = prefs.getString('jsonData'); if (jsonData == null) return null; return json.decode(jsonData); } ``` 2. 使用文件存储保存 JSON 数据Flutter 提供了一个文件操作类,可以将数据保存到文件。以下是保存和读取 JSON 数据的示例代码: ```dart import 'dart:async'; import 'dart:convert'; import 'dart:io'; // 保存 JSON 数据 saveData(Map<String, dynamic> data) async { final file = await _localFile; String jsonData = json.encode(data); file.writeAsString(jsonData); } // 读取 JSON 数据 Future<Map<String, dynamic>> loadData() async { try { final file = await _localFile; String jsonData = await file.readAsString(); return json.decode(jsonData); } catch (e) { return null; } } Future<File> get _localFile async { final path = await getApplicationDocumentsDirectory(); return File('$path/data.json'); } ``` 以上是两种常用的保存 JSON 数据的方法,你可以根据自己的需要选择其一种。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值