JavaScript:如何从JSON对象创建多嵌套类实例
修改类A构造函数实现数组元素转为类B实例
你可以通过在类A的构造函数中单独处理b数组,将数组内的每个对象转换为类B的实例,以下是两种常用实现方式:
方式一:解构处理属性(适合属性明确的场景)
直接解构JSON对象中的属性,针对性处理b数组后再赋值给实例:
class A{ constructor (json){ // 解构获取属性,默认空数组避免无b属性时报错 const { a, b = [] } = json; this.a = a; // 遍历b数组,将每个元素实例化为B this.b = b.map(item => new B(item)); } }
方式二:先赋值再替换数组(适合属性较多的场景)
先通过Object.assign批量赋值所有属性,再单独替换b数组的内容,同时增加数组校验避免异常:
class A{ constructor (json){ Object.assign(this, json); // 仅当b是数组时才进行转换 if (Array.isArray(this.b)) { this.b = this.b.map(item => new B(item)); } } }
验证效果
使用修改后的类A创建实例后,b数组的每个元素都会是类B的实例:
let js = { "a": 1, "b": [ { "h": "example", "v": 12 }, { "h": "example1", "v": 23 } ] }; const a = new A(js); console.log(a.b[0] instanceof B); // 输出 true console.log(a.b[0].h); // 输出 example
内容的提问来源于stack exchange,提问作者bcsta
相关产品推荐
相关产品推荐

