HarmonyOS 鸿蒙Next:定义的class里字段处理,接口未返回时对象缺少该字段

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:定义的class里字段处理,接口未返回时对象缺少该字段

export class NewsBean{
id: number = 0 // ID
classId: number = 0 // 栏目ID
className: string = “”//栏目名称
title: string = “”//标题
smallText: string = “”//简介
pv:string = “”//阅读量
publishTime: string = “”//发布时间
label: string = “”//标签
isTop: number = 0//置顶
imageUrl: string[] = []//图片
imageNum: number = 0 //图片数量
isVideo: number = 0 //是否是视频
videoTime: string = “”//视频时长
showType: number = 0 //显示类型
}
返回的数据少了比如label,打印该对象就是
{
“classId”: 880,
“title”: “聚焦重大建设项目”,
“dataType”: 5,
“showType”: 21,
“publishTime”: “1970-01-01”,
“imageUrl”: [
https://image.xxxxxxx.jpg
],
“pv”: “0”,
“smallText”: “”,
“buryValue”: “”,
“targetUrl”: “”
}
有些字段没有,怎么让没有的字段直接等于默认值呢

2 回复

可以通过Object.assign的方法复制属性到目标对象

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

参考如下步骤:

1、ets文件中无法使用Object.assign,可以新建ts文件工具类处理:

ObjectUtils.ts文件:

export class ObjectUtils {

/**

*对象合并

**/

static assign(target: Object, source?: Object): Object {

return Object.assign(target, source);

}

}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

2、ets文件中使用ObjectUtils :

class testObj{

code:number=0;

message:string=""

label:string=“123”

}

jsonParse() {

let jsonString: string = ‘{“code”:0, “message”:“success”}’;

let a:testObj= JSON.parse(jsonString) as testObj

const b = ObjectUtils.assign(new testObj(), a) as testObj;

console.log("testObj label= "+b.label)

}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

在HarmonyOS鸿蒙Next的开发环境中,当你遇到定义的class里字段处理问题时,特别是接口未返回该字段导致对象缺少该字段的情况,这通常与数据序列化和反序列化过程有关。以下是一些可能的原因及处理方式:

  1. 接口定义检查:首先确认接口定义中是否包含该字段,以及字段的命名和类型是否与客户端或服务端保持一致。

  2. 数据序列化:检查数据序列化过程,确保在发送数据前,该字段已被正确赋值并包含在内。如果是JSON格式,查看生成的JSON字符串是否包含该字段。

  3. 数据反序列化:接收端在反序列化数据时,应能正确解析并映射所有字段。如果字段缺失,可能是反序列化逻辑有误或字段名不匹配。

  4. 版本兼容性:如果客户端和服务端存在版本差异,确保字段的添加或修改在双方版本中均已同步更新。

  5. 日志与调试:增加日志记录,详细记录数据发送和接收的完整过程,有助于定位问题所在。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。通过专业的技术支持,可以更快地解决开发过程中遇到的问题。

回到顶部