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

这篇博客介绍了Flutter初学者如何在项目中读取并解析json文件数据。作者分享了从yaml文件引入依赖到实际代码操作的全过程,帮助读者理解在Flutter应用中处理本地json文件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

网上有很多读取的,但对于小白的我来说(刚接触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(BuildContext context) {
    //设计手稿与屏幕尺寸适配
    ScreenUtil.instance = ScreenUtil(width: 375, height: 736)..init(context);
    return new Scaffold(
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值