如何在Flutter上优雅地序列化一个对象
作者:闲鱼技术-海潴
序列化一个对象才是正经事
对象的序列化和反序列化是我们日常编码中一个非常基础的需求,尤其是对一个对象的json encode/decode操作。每一个平台都会有相关的库来帮助开发者方便得进行这两个操作,比如Java平台上赫赫有名的GSON,阿里巴巴开源的fastJson等等。
而在flutter上,借助官方提供的JsonCodec,只能对primitive/Map/List这三种类型进行json的encode/decode操作,对于复杂类型,JsonCodec提供了receiver
/toEncodable
两个函数让使用者手动“打包”和“解包”。
显然,JsonCodec提供的功能看起来相当的原始,在闲鱼app中存在着大量复杂对象序列化需求,如果使用这个类,就会出现集体“带薪序列化”的盛况,而且还无法保证正确性。
来自官

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Nodejs中的this详解
以下内容都是关于在nodejs中的this而非javascript中的this,nodejs中的this和在浏览器中javascript中的this是不一样的。 1、全局中的this默认是一个空对象。并且在全局中this与global对象没有任何的关系:如下 console.log(this); {} this.num = 10; console.log(this.num); 10 console.log(global.num); undefined 2、在函数中的this function fn(){ this.num = 10; } fn(); console.log(this); {} console.log(this.num); undefined console.log(global.num); 10 在函数中this指向的是global对象,和全局中的this不是同一个对象,简单来说,你在函数中通过this定义的变量就是相当于给global添加了一个属性,此时与全局中的this已经没有关系了。 如果不相信,看下面这段代码可以证明。 function fn(){ functi...
- 下一篇
【直播预告】阿里专家天樵:复杂业务系统下的规则引擎开发实践
主讲人:天樵(阿里巴巴技术专家)本名:包行杰,花名:天樵 来自阿里巴巴的技术专家 — 天樵,在阿里巴巴长期担任规则引擎开发工作,通过规则引擎、规则管理平台等技术输出,来支持阿里巴巴复杂多变的上层业务变更需求,对脚本工具、规则引擎、流程引擎等有比较深入的研究。 目前负责的阿里开源项目:https://github.com/alibaba/QLExpress 点击关注天樵的云栖社区个人主页 内容概要: 需求的频繁变更、工程代码的不断膨胀,让业务开发人员苦不堪言,规则引擎几乎成为了大型复杂软件系统的必备神器。 本次分享主要讲如何合理的使用规则引擎来梳理清楚业务逻辑,如何方便快速的配置业务逻辑、并且安全可控的实时生效。 直播时间:2019年1月30日 周三 今晚19:00直播地点:【阿里Java技术进阶】钉钉群详情请看下方图片: 想看免费直播的提
相关文章
文章评论
共有0条评论来说两句吧...