博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flutter Json和Bean互转
阅读量:3555 次
发布时间:2019-05-20

本文共 2009 字,大约阅读时间需要 6 分钟。

前言

使用Flutter&Dart已经快两个季度了,期间参与了Flutter插件的开发、Flutter Tools开发、Flutter热修复以及内部使用Flutter for Web等的实践。这里简单推荐下一个Flutter的Json和Bean的互转流程。

流程

Json2Dart

比如我们使用一言官网的开放API——,获取一个JSON。

{
"id": 841, "hitokoto": "不论生死,好坏,对错;只要载入史册那就代表胜利——历史由胜者书写", "type": "f", "from": "网络", "from_who": null, "creator": "hitokoto", "creator_uid": 1775, "reviewer": 0, "uuid": "56827477-4c50-4eab-bfdc-e21c0f02a59f", "created_at": "1478787580"}

拿到Json之后,我们可以使用这个工具,复制Json到左边的输入框,输入名称OneSentence,点击Generate Dart即可生成我们需要的Bean类。

在这里插入图片描述

OneSentence.dart

class OneSentence {  int id;  String hitokoto;  String type;  String from;  Null fromWho;  String creator;  int creatorUid;  int reviewer;  String uuid;  String createdAt;  OneSentence(      {this.id,      this.hitokoto,      this.type,      this.from,      this.fromWho,      this.creator,      this.creatorUid,      this.reviewer,      this.uuid,      this.createdAt});  OneSentence.fromJson(Map
json) { id = json['id']; hitokoto = json['hitokoto']; type = json['type']; from = json['from']; fromWho = json['from_who']; creator = json['creator']; creatorUid = json['creator_uid']; reviewer = json['reviewer']; uuid = json['uuid']; createdAt = json['created_at']; } Map
toJson() { final Map
data = new Map
(); data['id'] = this.id; data['hitokoto'] = this.hitokoto; data['type'] = this.type; data['from'] = this.from; data['from_who'] = this.fromWho; data['creator'] = this.creator; data['creator_uid'] = this.creatorUid; data['reviewer'] = this.reviewer; data['uuid'] = this.uuid; data['created_at'] = this.createdAt; return data; }}
  • 使用OneSentence.fromJson可以将Map转化为Bean对象。
  • 使用oneSentence.toJson可以将Bean类转化Json。

使用OneSentence.fromJson可以将Map转化为Bean对象,那么怎么将Json字符串转化为Map呢?

import 'dart:convert';Map userMap = json.decode(jsonString);

因此,Json字符串需要先用dart:convert库下的json.decode将字符串转化为Map,之后使用Bean.fromJson(Map)将Json转化为Bean对象;至于Bean转Json则直接调用Bean类的toJson方法即可。

附录

转载地址:http://qqzrj.baihongyu.com/

你可能感兴趣的文章
HTTP协议
查看>>
Python小程序——冒泡排序
查看>>
cmd中输入net start mysql 提示:服务名无效或者MySQL正在启动 MySQL无法启动
查看>>
LeetCode 206反转链表 [javsScript]
查看>>
[LeetCode javaScript] 3. 无重复字符的最长子串
查看>>
[LeetCode javaScript] 6. Z字形变换
查看>>
[LeetCode javaScript]455. 分发饼干
查看>>
[LeetCode javaScript] 735. 行星碰撞
查看>>
[LeetCode javaScript] 125. 验证回文串
查看>>
[LeetCode javaScript] 226. 翻转二叉树
查看>>
[LeetCode javaScript] 520. 检测大写字母
查看>>
[LeetCode javaScript] 53.最大子序和
查看>>
[LeetCode javaScript] 101. 对称二叉树
查看>>
[LeetCode javaScript] 860. 柠檬水找零
查看>>
[LeetCode javaScript] 118. 杨辉三角
查看>>
[LeetCode javaScript] 905. 按奇偶校验排序数组
查看>>
[LeetCode javaScript] 617. 合并二叉树
查看>>
[LeetCode javaScript] 292. Nim游戏
查看>>
[LeetCode javaScript] 896. 单调数列
查看>>
[LeetCode javaScript] 804. 唯一摩尔斯密码词
查看>>