如何从该JSON响应中提取指定对象值,解决map操作仅返回首字符的问题
问题根因
你调用Kraken公开接口获取的jsonResponce.result.XXBTZUSD.a本身就是一维字符串数组,数组内的每个元素都是完整的数值字符串(比如卖一价为"63201.2")。你在map回调中使用obj[0]是在取每个字符串的首个字符,自然只会返回数字的第一位。
修正方案
根据你的实际需求选择对应写法:
- 仅提取卖一价(数组第一个元素)
不需要调用map,直接取数组下标即可:
function test() { var url = 'https://api.kraken.com/0/public/Ticker?pair=BTCUSD'; var apiRequest = UrlFetchApp.fetch(url); var jsonResponce = JSON.parse(apiRequest); var priceArr = jsonResponce.result.XXBTZUSD.a; // 直接取卖一价,需要数字格式的话用Number()包裹即可 var askPrice = priceArr[0]; Logger.log(askPrice) }
- 将原数组每个元素单独封装为子数组
map回调直接返回包裹当前元素的数组即可,不需要加下标:
function test() { var url = 'https://api.kraken.com/0/public/Ticker?pair=BTCUSD'; var apiRequest = UrlFetchApp.fetch(url); var jsonResponce = JSON.parse(apiRequest); var priceArr = jsonResponce.result.XXBTZUSD.a; var fine = priceArr.map(obj => [obj]); Logger.log(fine) }
内容的提问来源于stack exchange,提问作者johnvan
相关产品推荐
相关产品推荐

