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

如何从Steam市场API响应提取median_price并转为可运算数值?

解决Steam市场价格字符串转数值的问题

嘿,我来帮你搞定这个价格转换的事儿。你需要对原代码做两个关键修改,就能把带$的价格字符串转成纯数值,方便后续求和运算:

1. 解析JSON响应字符串

原代码在end事件里直接打印了原始的JSON字符串,你得先把它转换成JavaScript对象,才能访问里面的median_price字段。用JSON.parse()就能轻松搞定这个。

2. 清理价格字符串并转换为数值

拿到median_price后,先去掉开头的$符号,再用parseFloat()把它转成浮点数(如果是整数场景也可以用Number(),但浮点数更适配价格这类带小数的场景)。

修改后的完整代码

const https = require('https'); 
const item = 'M4A1-S | Decimator (Field-Tested)'; 
let body = ''; 

https.get(`https://steamcommunity.com/market/priceoverview/?appid=730&market_hash_name=${encodeURIComponent(item)}`, res => { 
  res.on('data', data => { 
    body += data;
  }); 
  res.on('end', () => {
    // 第一步:解析JSON字符串为JS对象
    const marketData = JSON.parse(body);
    if (marketData.success) {
      // 第二步:处理价格字符串转数值
      const medianPrice = parseFloat(marketData.median_price.replace('$', ''));
      console.log('转换后的中位数价格:', medianPrice);
      
      // 如果要多值求和,你可以把这些数值存到数组里,比如:
      // const priceArray = [];
      // priceArray.push(medianPrice);
      // 之后用 priceArray.reduce((sum, price) => sum + price, 0) 计算总和
    } else {
      console.error('获取价格数据失败');
    }
  }); 
}).on('error', error => console.error(error.message));

额外优化点

我还加了两个实用的小优化:

  • 用encodeURIComponent()处理item参数,避免空格、竖线这类特殊字符导致请求出错,原代码直接拼接参数可能会有隐患。
  • 增加了success字段的判断,防止接口返回失败时解析JSON出错。

这样处理后,medianPrice就是纯数值5.09了,你可以把多个这样的数值放到数组里,用reduce方法轻松完成求和运算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:38:11