版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010289802/article/details/82781291
Flutter目前正在高速发展,而要学习Flutter,那么解析 JSON 肯定是必不可少的。Flutter中的JSON 解析主要有两种方式:
一、手动解析
用于比较简单的json还是挺方便的,写法也比较简单,看下面的例子就明白了
class User{
final String name;
final String email;
final bool loginFlag;
User({this.name, this.email,this.loginFlag});
factory User.fromJson(Map<String, dynamic> json) {
return new User(
loginFlag: json['loginFlag'],
name = json['name'],
email = json['email'],
);
}
}
使用方法:
import 'dart:convert';
import 'user.dart';
void main() {
getData();
}
getData(){
String json = """ """;
Map data = json.decode(a);
User user = User.fromJson(data);
print(user);
}
二、利用json_serializable
第1步:
在pubspec.yaml中添加以下依赖,然后在您的项目根文件夹中运行 flutter packages get
(或者在编辑器中点击 “Packages Get”) 以在项目中下载并使用这些新的依赖项.
dependencies:
# Your other regular dependencies here
json_annotation: ^0.2.3
dev_dependencies:
# Your other dev_dependencies here
build_runner: ^0.9.0
json_serializable: ^1.2.1
如果提示依赖项的版本跟你的dart sdk版本不符合,可以去 Dart Package 中找最新的依赖版本
第2步:
写Bean,手写太复杂了,推荐使用json2dartbean。这里我们用wanandroid的api做示例
第3步:
点击“复制”将生成的代码复制到我们的Bean中,然后在命令行输入
flutter packages pub run build_runner watch
这样会自动监视你lib目录下,然后当你的文件发生改变时会自动重新build一次,自动生成对应的 .g.dart 文件
第4步
使用
String jsonstr = """""";
Map<String, dynamic> map = json.decode(jsonstr);
var articles = new Article.fromJson(map);