OpenHarmony中的fastjson gson应该这样用

【问题背景】

随着越来越多的开发者开始投入北向应用的开发,无数的人开始问我:鸿蒙三方库是否有fastjson,是否有gson,当前json和对象的转换要怎么搞。

作为程序员,我的每个项目都逃不掉fastjson/gson等三方库,关键是看当前项目已经用了哪个,一般我也不会再自己新引入json库。 那么在OpenHarmony/HarmonyOS应用开发中,我的第一直觉告诉我,之前做网页/node开发时,貌似也没说有个fastjson/gson三方库。于是当时我找了下,其实在arkts开发时,沿用了js里自带的JSON,parse和JSON,stringify方法可以实现json和对象的转换,我也看了下早期确实有个开源三方库OpenHarmony-SIG/ohos_gson,我也看了下源代码,实现方式是参考gson的java代码,使用js重写。有人做过验证ohos_gson与JSON的转换的时间评测,结果是ohos_gson花费的时间是JSON的20倍以上。为了避免更多的应用入坑,因此ohos_gson到目前一直没发布到ohpm中心仓,所以别人一问我fastjson/gson的三方库的事情,我都答复用JSON去解决问题。

但是似乎问题没有完全解决,开发者越多,场景就越多。还是有很同学在反馈,说JSON并不能像fastjson/gson满足所有的需求,主要是以下几问题:
1.JSON.parse转过来的对象,不能带方法。比如class 中有个getName(){return this.firstName + this.lastName},这个方法就不能调用
2.JSON接收的json字段名称必须与本地对象属性名一致,能否重命名。
3.对象转JSON的时候,能否控制某些敏感字段不对外暴露。
4.属性是map或其他复杂结构体时,无法转换实现json与对象的互转

【解决方案】

对着上述的问题,我尝试google了一把,毕竟上述这些问题应该在web/node的开发场景下也会遇到。于是在更多的回复中,我看到业界建议更多的是用class-transformer来解决。这个库本身在OpenHarmony/HarmonyOS上正常跑,一行代码不用改,在三方库中心仓上可以直接下载到最新的0.51版本。
针对上述几个问题,我尝试了写了几段代码,验证了下,结果都是OK的。当然首先,需要


                
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值