HarmonyOS Jsons解析的对象无法调用防范

通过Json字符串解析的对象无法访问实例方法

HarmonyOS
2024-08-30 10:03:47
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

通过json解析字符串得到的对象的原型是object,其原型链中不存在自有的实例方法,故无法调用。

如需调用该方法,则有以下两种方式:

在解析后的对象上添加对应的原型。将该实例方法改为静态方法,通过类名去调用

我们经讨论得出,目前比较适合此场景的方案时使用三方库class-transformer,可以通过ohpm中心仓获取

对应中文教程:

https://juejin.cn/post/6844904117115027463

import { plainToInstance } from 'class-transformer' 
 
class Test { 
 md: number = 0 
 
 test() { 
  this.md++ 
  console.log(this.md.toString()) 
 } 
} 
 
let jsonString: string = JSON.stringify({md: 3}) 
let testObject: Test = JSON.parse(jsonString) as Test 
let realTest: Test = plainToInstance(Test, testObject) 
// 可以调用 
realTest.test() 
console.log("")
分享
微博
QQ
微信
回复
2024-08-30 17:51:48
相关问题
HarmonyOS JSON解析实体方法无法调用
35浏览 • 1回复 待解决
HarmonyOS 文件上传无法解析文件地址
88浏览 • 1回复 待解决
HarmonyOS JSON转换后调用对象方法报错
173浏览 • 1回复 待解决
HarmonyOS 数据类中方法无法调用
311浏览 • 1回复 待解决
HarmonyOS 跨module调用组件,无法显示
343浏览 • 1回复 待解决