鸿蒙NEXT开发笔记(十)仿微信聊天App的解析JSON串

上一节我们利用三方库SocketIO实现了在设备间收发文本消息,那么对于更复杂的消息包,就不仅是简单的一串文本,而是采用JSON格式封装的字符串。鉴于JSON格式是很常见的数据格式,这里就不再啰嗦了,如果是纯新手不了解JSON格式的话,建议参考《Android Studio开发实战:从零基础到App上线(第3版)》一书的“13.2.1  移动数据格式JSON”。
在安卓系统中,需要引入第三方的Gson库才能解析JSON串;而鸿蒙系统自带了JSON库,无需集成其他的第三方库。在ETS代码开头添加下面的导包语句,即可引入鸿蒙自身的JSON库。

import { JSON } from '@kit.ArkTS'

在实际开发过程中,发现即使不添加上面的导包语句,ETS代码也能正常调用JSON库的相关方法。推测是因为JSON库很常用,所以App默认自动加载JSON库,从而无需开发者手工导入该库。
鸿蒙自带的JSON库主要提供了stringify和parse两个方法,其中stringify方法用于把指定的数据对象转换为JSON字符串,而parse方法用于将JSON字符串转换为执行类型的数据对象。下面详细介绍如何在实际业务中使用JSON库。

1、自定义一个数据结构

首先自己定义一个数据结构,比如下面定义的UserInfo结构,用来存放用户信息。

export class UserInfo {
  id: number
  name: string
  age: number
  stature: number
  weight: number
  ismarried: boolean
  update_time: string
}

2、把构造好的数据对象转换为JSON字符串

先通过new创建UserInfo类型的数据对象,再调用JSON.stringify方法,把该对象转换为JSON格式的字符串。比如下面的属性初始化代码:

private user: UserInfo = new UserInfo('阿三', 40, 170, 70, false)
private jsonStr: string = JSON.stringify(this.user)

当然,也可根据需要在业务代码中随时把数据对象转为JSON字符串,比如下面的对象格式化代码:

this.jsonStr = JSON.stringify(this.user)
this.data = 'JSON串内容如下:\n' + this.jsonStr

3、把JSON字符串转换为指定类型的数据对象

拿到一个JSON格式的字符串以后,就能调用JSON.parse把该串解析为JSON格式,并添加后缀“as UserInfo”,表示把解析结果转换为UserInfo类型的数据对象。比如下面的解析代码把JSON串解析为UserInfo对象:

this.user = JSON.parse(this.jsonStr) as UserInfo
this.data = '从JSON串解析而来的用户信息如下:' +
  '\n\t姓名=' + this.user.name +
  '\n\t年龄=' + this.user.age +
  '\n\t身高=' + this.user.stature +
  '\n\t体重=' + this.user.weight +
  '\n\t婚否=' + this.user.ismarried

综合上述的封装和解析代码,在鸿蒙真机上运行测试App,一开始点击原始按钮,把用户对象转成JSON串的效果如下图所示。

接着点击解析按钮,把JSON串转成用户对象的效果如下图所示。

下一篇文章会介绍如何从系统相册中选择待发送的图片文件。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值