HarmonyOS 鸿蒙Next json 模型转换缺省值

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

HarmonyOS 鸿蒙Next json 模型转换缺省值

请问我们定义了一个泛型 export interface ResponseResult<T> { errcode: number; errmsg: string; data: T; }  T是各种自定义类型,如果json没有返回对应的key值,如果设置类型的缺省值,避免出现undefined ,例如  T 为如下类型, json 不会返回selectedKsy  export class Data { filterKey: string = ‘’; onClick: number = 0; tagName: string = ‘’; itemType: string = ‘’; items: string[] = []; // 自定义属性 selectedKey: string[] = [] }


更多关于HarmonyOS 鸿蒙Next json 模型转换缺省值的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

参考如下方案

在.ts文件封装代码:

export class Data {

filterKey: string = '';

onClick: number = 0;

tagName: string = '';

itemType: string = '';

items: string[] = [];

selectedKey: string[] = ["ok,ok,ok"];

constructor(data?: Partial<Data>) {

// 使用Object.assign将data(如果存在)的属性复制到当前实例上

// 如果data中缺少某些属性,则这些属性将保持其默认值

Object.assign(this, data);

}

}

在.ets侧调用

import { Data } from './test'

[@Entry](/user/Entry)

[@Component](/user/Component)

struct Index {

[@State](/user/State) message: string = 'Hello World';

build() {

Row() {

Column() {

Text(this.message)

.fontSize(50)

.fontWeight(FontWeight.Bold)

.onClick(() => {

// 假设你有如下的JSON字符串

const jsonData = '{"filterKey": "abc", "onClick": 1, "tagName": "tag", "itemType": "type", "items": ["item1", "item2"]}';

// 将其解析为对象

const parsedData = JSON.parse(jsonData) as Partial<Data>;

// 实例化Data类,并传入解析后的对象

const dataInstance = new Data(parsedData);

console.log("123",dataInstance.selectedKey); // 输出: 默认值ok,ok,ok

console.log("123",dataInstance.items)// 输出:item1,item2

})

}

.width('100%')

}

.height('100%')

}

}

更多关于HarmonyOS 鸿蒙Next json 模型转换缺省值的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,针对JSON模型转换中的缺省值处理,系统提供了一系列内置机制来确保数据完整性和兼容性。当JSON数据中的某个字段缺失或未定义时,这些机制允许开发者预设缺省值,以避免程序异常或数据错误。

具体实现上,鸿蒙系统支持在数据绑定或模型映射时,通过配置指定字段的默认值。这通常是在数据模型类中使用注解(Annotation)或特定的配置语法来完成的。例如,对于某个可能缺失的字段,可以在模型定义中通过@DefaultValue(假设的注解名,实际以鸿蒙文档为准)来指定其缺省值。

此外,鸿蒙系统还提供了丰富的API接口,允许开发者在运行时动态检查JSON数据中的字段是否存在,并根据检查结果手动设置缺省值。这种方式提供了更高的灵活性,适用于需要根据不同条件设置不同缺省值的场景。

总之,HarmonyOS鸿蒙Next系统通过内置机制和API接口,为JSON模型转换中的缺省值处理提供了全面的解决方案。开发者可以根据实际需求选择合适的方法来实现缺省值的设置。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部