开启了严格的ArkTS语言检查,JSON的取值方案

开启了严格的ArkTS语言检查,JSON的取值方案

HarmonyOS
2024-05-23 21:59:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
chunter

一、背景

语法整改后,针对较为复杂数据,需要指定类型接收。

二、应用场景

{ 
    "reqId": "2b2258ae54e3101a", 
    "code": 0, 
    "msg": "success", 
    "data": { 
        "roomId": "823688", 
        "nativeUrl": "native://enterLiveRoom?RoomId=823688", 
        "status": "1", 
        "userResp": [ 
            { 
                "nickname": "一个很长的名字", 
                "avatar": "https://www.baidu.com/" 
            } 
        ] 
    } 
}

以上数据通过JSON.prase解析后得到的数据接收并获取对应值。

三、解决方案

定义相关数据类型接口

interface userRespType{ 
  nickname: string, 
  avatar: string 
} 
interface dataType{ 
  roomId: string, 
  nativeUrl: string, 
  status: string, 
  userResp:Array<userRespType> 
} 
interface jsonObjectType{ 
  reqId:string, 
  code: number, 
  msg: string, 
  data:dataType 
}

四、场景复现

 let userResp:userRespType = { 
      nickname: "一个很长的名字", 
      avatar: "avatar": "https://www.baidu.com/" 
    } 
let data:dataType = { 
    roomId: "823688", 
    nativeUrl: "native://enterLiveRoom?RoomId=823688", 
    status: "1", 
    userResp: [ 
    userResp 
    ] 
} 
let jsonObj:jsonObjectType= { 
    reqId: "2b2258ae54e3101a", 
    code: 0, 
    msg: "success", 
    data:data 
} 
let json:string = JSON.stringify(jsonObj)

五、数据接收并取值

let test:jsonObjectType = JSON.parse(json) 
console.info(test.msg) 
console.info(test.data.userResp[0].nickname)
分享
微博
QQ
微信
回复
2024-05-24 21:44:58
相关问题
ArkTS如何开启多个ArkTS 运行环境
653浏览 • 1回复 待解决
如何在ArkTS中实现JSON和Map转换?
645浏览 • 1回复 待解决
ArkTS语言支持语音识别吗?
579浏览 • 1回复 待解决
ArkTS如何读取本地json
5322浏览 • 1回复 待解决
ArkTS语言内存管理,会自己管理吗
821浏览 • 1回复 待解决
怎么监听蓝牙开启状态?
3510浏览 • 1回复 待解决
ArkTs多线程方案如何保证线程安全
1088浏览 • 1回复 待解决