HarmonyOS关于JSON 转换后对象的方法无法使用问题

HarmonyOS
2024-08-27 11:26:56
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

代码如下:

class test { 
  name: string 
  constructor(name: string) { 
    this.name = name 
  } 
  getNewName() { 
    return this.name + '===' 
  } 
} 
testFun() { 
  let str = '{"name":"zhang san"}' 
  let testBean:test = JSON.parse(str) 
  console.log(testBean.name) 
  console.log(testBean.getNewName()) 
}

JSON.parse(str)执行后,返回的是一个对象,并不是说,将object赋值给test这个类,就表示testBean为test类了,其实,他的类型还是一个对象,里面的属性以及方法还是object的。console.log(testBean.name)执行正常,是因为返回的object中,刚好存在一个名称为name的属性,而console.log(testBean.getNewName())执行报错,则表示object中不存在getNewName这个方法。

如果传入的字串是let str = ‘{“age”:“18”}’,则console.log(testBean.name)也会报错,会提示对象中的name没有定义。所以,并不是JSON 转换后对象的方法无法使用问题,而是类型不匹配。可将object的对象属性拿出来,创建对应类对象,如:let testBean:test = new test(testBean1.name);

分享
微博
QQ
微信
回复
2024-08-27 18:02:40
相关问题
HarmonyOS网络请求JSON转换问题
584浏览 • 1回复 待解决
HarmonyOS对象转换成字符串方法
431浏览 • 1回复 待解决
json 如何转换成自定义业务类对象
720浏览 • 1回复 待解决
ohos.util.json转换string问题
173浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam问题
228浏览 • 1回复 待解决
HarmonyOS关于API使用问题
295浏览 • 1回复 待解决
HarmonyOS 关于AOP具体使用方法
291浏览 • 1回复 待解决
HarmonyOS 转换时间戳方法
451浏览 • 1回复 待解决
HarmonyOS关于异步Promise使用问题
339浏览 • 1回复 待解决
HarmonyOS 如何创建json对象
357浏览 • 1回复 待解决
HarmonyOS关于使用fs.copyfile问题
411浏览 • 1回复 待解决