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

如何解构嵌套对象?从POST请求响应中提取ObjectID

解决嵌套对象的解构问题

你遇到的问题很典型——因为没匹配到数据的嵌套层级,直接从res.data里解构ObjectID肯定拿不到值。先明确你的数据结构:

从POST请求获取到的response.data:

{ d: { results: { __metadata: [Object], ObjectID: '00163E6CDDFC1EEA96C57123A5C6DDE5', InformationLifeCycleStatusCode: 'AC', ID: '9000001424' } } }

可以看到ObjectID藏在res.data.d.results的层级里,得逐层解构才能拿到它,这里给你两种可行方案:

方案一:一次性多层解构

直接用嵌套解构语法一步到位,完全匹配数据层级:

const { d: { results: { ObjectID: objectID } } } = res.data;

拆解一下逻辑:

  1. 从res.data中取出d对象
  2. 从d中取出results对象
  3. 从results中取出ObjectID,并将其重命名为objectID(如果想保留原变量名,直接写ObjectID即可)

方案二:分步解构(更易读)

如果觉得多层解构看起来复杂,拆成几步会更直观,也方便调试:

// 第一步:拿到最外层的d对象
const { d } = res.data;
// 第二步:从d里取出results对象
const { results } = d;
// 第三步:从results里提取ObjectID
const { ObjectID: objectID } = results;

验证效果

用模拟数据测试第一种方案,看看结果:

const res = {
  data: { 
    d: { 
      results: { 
        __metadata: {}, 
        ObjectID: '00163E6CDDFC1EEA96C57123A5C6DDE5', 
        InformationLifeCycleStatusCode: 'AC', 
        ID: '9000001424' 
      } 
    } 
  }
};

const { d: { results: { ObjectID: objectID } } } = res.data;
console.log(objectID); // 输出:00163E6CDDFC1EEA96C57123A5C6DDE5

核心就是解构的层级必须和数据的嵌套结构完全对应,不能跳过中间的d和results层直接提取ObjectID哦~

内容的提问来源于stack exchange,提问作者user5228754

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 19:12:49