HarmonyOS JSON解析时怎么让未传字段使用默认值

使用JSON.parse将json字符串"{a=‘test’}"解析成如下对象:

class A {
  public a: string = "a";
  public b: string = "b";
}

期望是得到的对象里的b是"b",实际上是undefined,有没有方法能得到期望的结果?

HarmonyOS
2024-12-23 14:38:36
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

JSON.parse将json字符串"{a='test'}"解析成的是一个Object,如果通过as转化为A类型,这样并不会改变变量的实际类型。类型转换仅仅是告诉编译器或运行时系统,将某个值视为特定类型来处理,但并不会改变这个值的内部表示或实际类型。也就是说得到的对象实际上并没有b属性,所以得到的是undefined。

如果想要实现让未传字段使用默认值,参考示例:

import { JSON } from '@kit.ArkTS';

class A {
  public a: string = "a"; // 默认值
  public b: string = "b"; // 默认值

  constructor(data: ESObject) {
    this.a = data.a || this.a;
    this.b = data.b || this.b;
  }
}

const jsonString = '{"a": "test"}';
const jsonObject = JSON.parse(jsonString);
const instanceA = new A(jsonObject);
console.log('b = ' + instanceA.b); //输出b = b
分享
微博
QQ
微信
回复
2024-12-23 17:56:10
相关问题
HarmonyOS 怎么给类的属性赋默认值
1508浏览 • 1回复 待解决
HarmonyOS 类中属性默认值问题
657浏览 • 1回复 待解决
@Prop 为什么不能提供默认值啊?
2374浏览 • 1回复 待解决
class使用闭包方式初始化 默认值丢失
2256浏览 • 1回复 待解决
HarmonyOS 页面反向怎么
464浏览 • 1回复 待解决
HarmonyOS使用json解析报错
1968浏览 • 2回复 待解决
HarmonyOS 怎么解析本地文件json内容?
462浏览 • 1回复 待解决
HarmonyOS json 解析
415浏览 • 1回复 待解决