Flutter 系列之 JSON 解析

版权声明:本文为博主原创文章,未经博主允许不得转载。 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);

猜你喜欢

转载自blog.csdn.net/u010289802/article/details/82781291