前言
网上有很多读取的,但对于小白的我来说(刚接触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