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

HarmonyOS
2024-08-27 11:26:56
4044浏览
收藏 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()) 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

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转换调用对象方法报错
927浏览 • 1回复 待解决
HarmonyOS网络请求JSON转换问题
2085浏览 • 1回复 待解决
HarmonyOS JSON对象转换
947浏览 • 1回复 待解决
HarmonyOS json转换对象
1000浏览 • 2回复 待解决
HarmonyOS json转换模型问题
834浏览 • 1回复 待解决
HarmonyOS 关于json解析问题
770浏览 • 1回复 待解决
HarmonyOS对象转换成字符串方法
1669浏览 • 1回复 待解决
json 如何转换成自定义业务类对象
1626浏览 • 1回复 待解决
HarmonyOS 关于JSON转模问题
790浏览 • 1回复 待解决
ohos.util.json转换string问题
1005浏览 • 1回复 待解决
HarmonyOS JSON解析实体方法无法调用
882浏览 • 1回复 待解决
HarmonyOS json转换失败
668浏览 • 1回复 待解决
json解析对象获取数据返回undefined。
1800浏览 • 1回复 待解决
HarmonyOS json数据和对象互转时问题
710浏览 • 2回复 待解决