Flutter 系列之 JSON 解析

一、前言


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);

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值