flutter 序列化 jsonEncode jsonDecode

flutter 序列化 jsonEncode jsonDecodejson_encode是将数值转换成json格式,json_decode()函数将json数据转换成数组flutter进行数据传递需要进行序列号进行编码解码要序列化一个ServiceInfoModel,我们只是将该ServiceInfoModel对象传递给该JSON.encode方法。我们不需要手动调用toJson这个方法,因为JSON.encode已经为我们做了。jsonEncodejson编码过程varvehicleCarModel=Uri.encodeComp..

大家好,又见面了,我是你们的朋友全栈君。

json_encode是将数值转换成json 格式,json_decode()函数将json数据转换成数组 

flutter 进行数据传递需要进行序列号 进行编码 解码

要序列化一个ServiceInfoModel ,我们只是将该ServiceInfoModel 对象传递给该JSON.encode方法。我们不需要手动调用toJson这个方法,因为JSON.encode已经为我们做了。

一个usebean对象

class User {
  User(this.id, this.name);

  int id;
  String name;

//jsonDecode(sting) ->就是fromJson过程 转成结果为map
  User.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    name = json['name'];
  }

//jsonEncode(user) ->就是tojson过程
  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['name'] = this.name;
    return data;
  }
}

 进行jsonencode 和jsondecode进行编码解码

  /// 用户登录。简单起见,返回User
  Future<User> login(String mobile, String sms) async {
 
    User user = User(1, '程序员磊哥');
    print('登录成功: $user');
    var data = jsonEncode(user);
    print("jsonEncode转换的结果对象转为json过程" + data);
    Map user2 = jsonDecode(data.toString());
    print("jsonDecode转换的结果为map并得到map的id值为" + user2["id"].toString());
    User user3 = User.fromJson(jsonDecode(data.toString()));
    print("jsonDecode转换的结果为map再用 User.fromJson(string)转为对象use" + user3.name);
    return user;
  }

 解码 编码后运行结果


I/flutter (17450): jsonEncode转换的结果对象转为json过程{"id":1,"name":"程序员磊哥"}
I/flutter (17450): jsonDecode转换的结果为map并得到map的id值为1
I/flutter (17450): jsonDecode转换的结果为map再用 User.fromJson(string)转为对象use程序员磊哥
I/flutter (17450): 加载首页数据...
I/flutter (17450): 加载首页数据完成

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160614.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • native2ascii命令详解[通俗易懂]

    native2ascii命令详解[通俗易懂]1、native2ascii简介:native2ascii是sunjavasdk提供的一个工具。用来将别的文本类文件(比如.txt,.ini,.properties,.java等等)编码转为Unicode编码。为什么要进行转码,原因在于程序的国际化。Unicode编码的定义:Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并

    2022年9月12日
  • 如何提高OKCC呼叫中心坐席利用率

    如何提高OKCC呼叫中心坐席利用率说到底,呼叫中心是经营人的一个行业,是劳动密集型的一个典型场景。但凡是劳动密集型行业,都有一个典型特点,就是毛利偏低,效率提高或降低5到10个点,往往就是赚钱、白干甚至亏本的分界线。也正是因为如此,不管是呼入客服型,还是外呼电销型,坐席利用率,都是衡量呼叫中心管理效率的核心指标之一。坐席利用率,是坐席投入工作的有效时长占上班总时长的比例。投入工作的时间,主要包括接打电话的时间以及用于记录电话交流信息的话后处理时间,这部分时间再加上用餐、休息、培训及会议、总结交流等时间,即是坐席一天的工作总时间。显

    2022年7月12日
  • 函数c()_函数的调用

    函数c()_函数的调用__builtin_系列函数

    2022年10月30日
  • linux 文本编辑器vi常用命令

    linux 文本编辑器vi常用命令linux之文本编辑器vi常用命令由于经常在linux下面文本操作,所以这里稍微系统的总结一下自己常用的vi命令1、打开命令:vi+filename(还有各种打开的姿势,只不过我比较顺手这个)2、退出命令::q退出而且不保存修改的内容:q!强制退出不保存修改的内容:wq退出并且保存修改的内容:wq!强制保存修改的内容然后退出(修改了只读文件会用到)ZZ退出并且保存修改的内容,相当于:wq,看个人习惯3、光标移动命令个人比较喜欢上下左右方向键,字母h(左),j

    2022年7月26日
  • sublime激活码【注册码】

    sublime激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
  • js 手机号码正则

    js 手机号码正则varphone=document.getElementById(‘phone’).value;if(!(/^1[3456789]\d{9}$/.test(phone))){alert(“手机号码有误,请重填”);returnfalse;}varphone=document.getElementById(‘phon…

    2022年6月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号