浅谈Flutter解析JSON三种方式

 更新时间:2021年03月30日 11:34:11   作者:静默的小猫  
这篇文章主要介绍了浅谈Flutter解析JSON三种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Dart实体类格式

class CategoryMo {
 String name;
 int count;

 CategoryMo({this.name, this.count});
 //将map转成mo
 CategoryMo.fromJson(Map<String, dynamic> json) {
 name = json['name'];
 count = json['count'];
 }
 //将mo转成map,可缺省
 Map<String, dynamic> toJson() {
 final Map<String, dynamic> data = new Map<String, dynamic>();
 data['name'] = this.name;
 data['count'] = this.count;
 return data;
 }
}

方案一:手写实体类

person.json

{
 "name": "Jack",
 "age": 20
}

model转换与使用

var personMap = {
 "name": "Jack",
 "age": 20
};
Person person = Person.fromJson(personMap);
print('name:${person.name}');
print('age:${person.age}');

方案二:生产力工具:json-to-dart插件自动生成实体类

方案三:生产力工具: json_ serializable使用技巧

安装插件

dependencies:
...
 dio: ^3.0.10
 json_annotation: ^3.1.0


dev_dependencies:
...
 json_serializable: ^3.5.0
 build_runner: ^1.0.0

配置实体类

{
 "code": 0,
 "method": "GET",
 "requestPrams": "dd"
}
import 'package:json_annotation/json_annotation.dart';

// result.g.dart 将在我们运行生成命令后自动生成
part 'result.g.dart';

///这个标注是告诉生成器,这个类是需要生成Model类的
@JsonSerializable()
class Result {
 //定义构造方法
 Result(this.code, this.method, this.requestPrams);
 //定义字段
 int code;
 String method;
 String requestPrams;

 //固定格式,不同的类使用不同的mixin即可
 factory Result.fromJson(Map<String, dynamic> json) => _$ResultFromJson(json);
 //固定格式
 Map<String, dynamic> toJson() => _$ResultToJson(this);
}

因为实体类的生成代码还不存在,所以上代码会提示一-些错误是正常现象

执行build生成实体类

flutter packages pub run build_runner build

如何选择


到此这篇关于浅谈Flutter解析JSON三种方式的文章就介绍到这了,更多相关Flutter解析JSON内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android如何在Gradle中更改APK文件名详解

    Android如何在Gradle中更改APK文件名详解

    这篇文章主要介绍了Android如何在Gradle中更改APK文件名的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-10-10
  • Android开发实现消除屏幕锁的方法

    Android开发实现消除屏幕锁的方法

    这篇文章主要介绍了Android开发实现消除屏幕锁的方法,结合实例形式较为详细的分析了Android锁屏的原理及消除屏幕锁的相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • 快速解决Android7.0下沉浸式状态栏变灰的问题

    快速解决Android7.0下沉浸式状态栏变灰的问题

    下面小编就为大家分享一篇快速解决Android7.0下沉浸式状态栏变灰的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Android编程实现修改标题栏位置使其居中的方法

    Android编程实现修改标题栏位置使其居中的方法

    这篇文章主要介绍了Android编程实现修改标题栏位置使其居中的方法,涉及Android布局设置的简单实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Android中Intent习惯用法

    Android中Intent习惯用法

    这篇文章主要介绍了Android中Intent习惯用法,演示了如何在Android中利用Intent进行拍照、摄像、打电话、发短信、发邮件等,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • android开发教程之子线程中更新界面

    android开发教程之子线程中更新界面

    本文主要介绍Android的Handler的使用方法。Handler可以发送Messsage和Runnable对象到与其相关联的线程的消息队列
    2014-01-01
  • Android使用httpPost向服务器发送请求的方法

    Android使用httpPost向服务器发送请求的方法

    这篇文章主要介绍了Android使用httpPost向服务器发送请求的方法,实例分析了Android针对HttpPost类的操作技巧,需要的朋友可以参考下
    2015-12-12
  • Android上实现easyconfig(airkiss)方法

    Android上实现easyconfig(airkiss)方法

    本篇文章主要给大家讲解了在Android系统上实现easyconfig(airkiss)的方法,有这方面需要的朋友参考学习下吧。
    2018-01-01
  • 详解Android应用中使用TabHost组件进行布局的基本方法

    详解Android应用中使用TabHost组件进行布局的基本方法

    这篇文章主要介绍了Android应用中使用TabHost组件进行布局的基本方法,不继承TabActivity并以最基本的布局文件方式进行布局,需要的朋友可以参考下
    2016-04-04
  • android实现通话自动录音服务

    android实现通话自动录音服务

    这篇文章主要为大家详细介绍了android实现通话自动录音服务,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10

最新评论