鸿蒙开发之gson解析
作为老牌的Java程序员,几乎每个项目都逃不掉fastjson/gson等三方库。那么在OpenHarmony/HarmonyOS应用开发中,做数据解析时能不能使用fastjson/gson三方库呢?于是我搜索了一下,其实在arkts开发过程中也是可以使用JS里自带的JSONparse和JSONstringify方法来实现JSON和对象转换的。并且在早期的版本中还提供了一个开源的三方库OpenHarmony-SIG/ohos_gson。有人做过验证ohos_gson与JSON的转换的时间评测,结果是ohos_gson花费的时间是JSON的20倍以上。所以,为了避免更多的应用入坑,因此ohos_gson到目前一直没发布到ohpm中心仓。
那有些同学还是会问,说JSON并不能像fastjson/gson满足所有的需求,主要是以下几问题:
- JSON.parse转过来的对象,不能带方法。比如class 中有个getName(){return this.firstName + this.lastName},这个方法就不能调用
- JSON接收的json字段名称必须与本地对象属性名一致,能否重命名。
- 对象转JSON的时候,能否控制某些敏感字段不对外暴露。
- 属性是map或其他复杂结构体时,无法转换实现json与对象的互转。
针对上述的问题,我尝试Google搜索了一把,最终找到了class-transformer来解决。这个库本身在OpenHarmony/HarmonyOS上正常跑,一行代码不用改,在三方库中心仓上可以直接下载到最新的0.51版本。