Flutter JSON数据解析
文章目录
- Flutter JSON解析
- 基本使用
- 定义bean类
- 解析Json
- 解析JsonArray
- 自动生成Model类
- 添加依赖
- 编写代码
- 执行命令
- 在线网站生成
- JsonToDart插件生成
Flutter JSON解析
基本使用
定义bean类
class User {final String name;final int age;final String address;User(this.name, this.age, this.address);@overrideString toString() {return 'User{name: $name, age: $age, address: $address}';}
}
解析Json
String jsonStr = """{"name":"小明","age":18,"address":"beijing"
}""";
var jsonMap = json.decode(jsonStr);
var user = User(jsonMap["name"], jsonMap["age"], jsonMap["address"]);
print(user); //User{name: 小明, age: 18, address: beijing}
解析JsonArray
String jsonArrayStr = """[{"name": "小黑","age": 18,"address": "shanghai"},{"name": "小白","age": 28,"address": "beijing"},{"name": "小明","age": 38,"address": "广州"}
]""";
List jsonArray = json.decode(jsonArrayStr);
List<User> userList = jsonArray.map((e) => User(e["name"], e["age"], e["address"])).toList();
print(userList); //[User{name: 小黑, age: 18, address: shanghai}, User{name: 小白, age: 28, address: beijing}, User{name: 小明, age: 38, address: 广州}]
自动生成Model类
实际开发中,JSON很少会这么简单,嵌套的Json情况很多。可以使用json_serializable
插件自动生成Model类。
添加依赖
dependencies:json_annotation: ^4.5.0dev_dependencies:json_serializable: ^6.2.0build_runner: ^2.1.11
编写代码
part 'person.g.dart';@JsonSerializable()
class Person {final String name;final int age;final String address;Person(this.name, this.age, this.address);factory Person.fromJson(Map<String, dynamic> json) => _$PersonFromJson(json);Map<String, dynamic> toJson() => _$PersonToJson(this);@overrideString toString() {return 'User{name: $name, age: $age, address: $address}';}
}
part
:表示生成的Model类在什么位置。@JsonSerializable()
:这个标注告诉生成器,是这个类需要生成Model类。
执行命令
一次性生成
在项目的根目录下执行:
flutter packages pub run build_runner build
持续生成
flutter packages pub run build_runner watch
推荐将所有的Model类放在一个单独的目录下,然后执行命令。
在线网站生成
https://app.quicktype.io/
JsonToDart插件生成
在AndroidStudio中安装JsonToDart
插件,然后选定目录,点击右键,选择New -> Json to Dart
,或快捷键ALT + Shift + D
自动生成Model类。
Flutter JSON数据解析相关推荐
- dio java,Flutter基础(十一)网络请求(Dio)与JSON数据解析
本文首发于微信公众号「后厂技术官」 前言 在Android开发中如果我们想要请求网络,可以使用HttpClent.HttpURLConnection,但在项目中一般都会使用OkHttp和Retrofi ...
- Android JSON数据解析(GSON方式)
要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Jav ...
- Rxjava、Retrofit返回json数据解析异常处理
每个App都避免不了要进行网络请求,从最开始的用谷歌封装的volley到再到android-async-http再到OKHttpUtils再到现在的Retrofit和RxJava,从我自己用后的体验来 ...
- 29-30Python多线程、多线程、使用threading模块创建线程;JSON数据解析、编码为JSON类型转换对应表、Python类型转换对应表、json.dumps与json.loads
29Python3多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,比如用户点击了一个按钮去触发某些 ...
- Android学习笔记44:JSON数据解析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...
- Android json数据解析及简单例子
JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...
- Linux7081端口,bash,linux_利用shell将json数据解析后排序问题,bash,linux,ubuntu,json - phpStudy...
利用shell将json数据解析后排序问题 最近在写一个模仿dropbox_uploader的百度网盘的shell脚本.通过调用pcs的api返回一个目录下的所有文件.返回的json数据如下: {&q ...
- Android系列---JSON数据解析
http://www.cnblogs.com/xiaoluo501395377/p/3446605.html Android系列---JSON数据解析 转载于:https://www.cnblogs. ...
- iOS进阶(XML、JSON数据解析)
1.XML解析之DOM解析 需要用到libxml2.dylib框架 和GDataXMLNode工具 DOM是基于内存的,不管文件有多大,都会将所有的内容预先装载到内存中.从而消耗很大的内存空间.DOM ...
最新文章
- DELPHI 开发的 OCX 控件在 MFC 程序中编辑框快捷键不好使的解决
- 中国科学家提出“探索极端宇宙”国际科学计划
- 打断点是什么意思_佛学基础知识(股票所说的大盘几千点,是指的什么意思)
- Teraco公司投资9000万美元扩建其在南非数据中心
- golang 学习心得一(开发环境搭建过程中一些坑)
- 新手如何免费开始学习阿里云ECS云服务器?
- 利用Java手写简单的httpserver
- 基于qt平台的ip地址输入控件
- Data URL和图片
- Win7/10快捷方式恢复小箭头
- DBA必备技能:数据库挂起时进行转储分析诊断案例
- macOS 虚拟摄像头:CamTwist for Mac
- JAVA 开发基础【JSON相关】
- 从加密朋克到赛博朋克,一文盘点热门NFT头像项目
- 全球开发者各出奇招:我们想这样适配iPhone X
- pytest单元测试
- 计算机技术服务业成本核算,技术服务成本怎么核算?
- 人工智能专家细数AI安全隐患
- C#应用程序与MATLAB联合编程
- 论文解读:《一种利用二核苷酸One-hot编码器识别水稻基因组中N6甲基腺嘌呤位点的卷积神经网络》
热门文章
- openmpi雅可比迭代法_用雅可比迭代法求线性方程组的解的并行算法(MPI)
- 蛮力法/最大连续子序列的和O(n^3)
- https://raw.githubusercontent.com无法下载解决流程
- 抽屉远离在计算机的应用,抽屉原理破电脑科学算命
- 使用myBatis访问数据库原理
- sssssssssssssss
- iResearch-艾瑞投资月报2015年7月
- Failed to resolve attribute at index 6
- 圆角装饰条_【混凝土柱子倒角条圆弧线条_倒角圆弧线条塑料圆角线条】河北衡水_报价_图片-安平县格华丝网制品有限公司...
- ubuntu18.04 maas