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

如何正确获取Ethermine API返回结果中response.data后的嵌套数据

Ethermine API数据取值解决方案

问题原因

你取值时的路径少了一层data字段。从你打印的response.data返回结构可以看出:
axios请求返回的顶层response.data是API的完整响应包,这个响应包内部还嵌套了一层独立的data属性,price、poolStats这些业务字段都属于内层的data对象,所以直接取response.data.price自然会返回undefined,调用eur属性就会抛出类型错误。

正确取值写法

正确的取值路径为response.data.data.price.eur,修改后的代码如下:

global.etherminepool = `https://api.ethermine.org/poolStats`;
axios.get(etherminepool)
.then(function(response) {
  // 先判断接口返回状态正常再取值,避免异常报错
  if (response.data && response.data.status === 'OK') {
    const eurPrice = response.data.data.price.eur;
    console.log(eurPrice);
  }
})
.catch(function (error) {
  console.log(error);
})
.then(function () {
  // 始终执行的逻辑
});

点语法和方括号语法的区别

你提到的两种取值方式的差异如下:

  • 点语法:适合属性名是合法变量标识符的场景,不需要额外加引号,你当前的场景直接用点语法就可以,写法更简洁
  • 方括号语法:适合属性名包含特殊字符、属性名是动态变量的场景,需要把属性名放在引号内传入,和点语法效果完全一致,示例:response.data['data']['price']['eur']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:39:01