You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:36:29