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

如何在Node.js中从Web地址加载JSON数据?实例问题求解

嘿,你这个问题我太熟了——require()根本没法直接加载远程URL,它是用来加载本地文件或者已安装的npm包的,所以你那行代码肯定跑不起来。下面给你几种靠谱的实现方式,按需选就行:

方法1:用Node.js内置的https模块(无额外依赖)

如果不想安装第三方包,用Node.js自带的https模块就能搞定,代码如下:

const https = require('https');

https.get('https://blockchain.info/ticker', (res) => {
  let rawData = '';

  // 逐步接收响应数据片段
  res.on('data', (chunk) => {
    rawData += chunk;
  });

  // 数据接收完成后解析JSON
  res.on('end', () => {
    try {
      const btcTicker = JSON.parse(rawData);
      console.log('BTC实时行情:', btcTicker);
      // 举个例子:获取人民币计价的当前价格
      console.log('BTC人民币价格:', btcTicker.CNY.last);
    } catch (err) {
      console.error('解析JSON失败:', err.message);
    }
  });
}).on('error', (err) => {
  console.error('请求远程数据出错:', err.message);
});
方法2:用第三方库axios(代码更简洁)

如果觉得内置模块的回调写法不够直观,axios是个不错的选择,先安装依赖:

npm install axios

然后用async/await写异步请求,可读性拉满:

const axios = require('axios');

async function fetchBtcTicker() {
  try {
    const response = await axios.get('https://blockchain.info/ticker');
    const btcTicker = response.data;
    console.log('BTC实时行情:', btcTicker);
  } catch (err) {
    console.error('请求或解析出错:', err.message);
  }
}

// 调用函数
fetchBtcTicker();
方法3:用Node.js 18+内置的fetch API

从Node.js 18版本开始,官方内置了和浏览器一致的fetch API,不需要装任何依赖,写法最简洁:

async function fetchBtcTicker() {
  try {
    const response = await fetch('https://blockchain.info/ticker');
    const btcTicker = await response.json();
    console.log('BTC实时行情:', btcTicker);
  } catch (err) {
    console.error('请求或解析出错:', err.message);
  }
}

fetchBtcTicker();

小提示

  • 不管用哪种方法,都要做好错误处理:网络请求可能超时、失败,返回的内容也可能不是合法JSON,所以try/catch或者错误监听一定要加。
  • 如果需要频繁获取数据,建议加个缓存机制,避免短时间内重复请求被服务器限流。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:26:39