首页 > 解决方案 > 如何使用 d3 将 URL 列表映射到 JSON 对象列表?

问题描述

我有一个 URL 字符串数组,我想从每个 URL 获取 JSON,并最终得到一个 JSON 对象数组。但是,此代码为我提供了有关 JSON 的元数据(标头、mimetypes)数组,而不是实际的 JSON。

<script>

// Formatting dates
var startDate = new Date()
startDate.setDate(startDate.getDate()-120)
var endDate = new Date() 
endDate.setDate(endDate.getDate()-1)

let startDateString = startDate.toISOString().slice(0, 10)
let endDateString = endDate.toISOString().slice(0, 10)


function getURL(ticker) {
    return `https://api.polygon.io/v2/aggs/ticker/${ticker}/range/1/day/${startDateString}/${endDateString}?adjusted=true&sort=asc&apiKey=XXX`
}


d3.csv('stocks.csv', function (data) {
    // I get the ticker from each row of stocks.csv and map it to a url
    let tickers = [...new Set(data.map(d => d.code))]
    let urls = tickers.map(d => getURL(d))
    
    
    Promise.all(
        
        urls.map(url => d3.json(url, function (data) {
            // I want the last 60 trading days
            return data.results.slice(-60)
        }))
        
    ).then((data) => {
        // data should be the array of json objects but is instead an array of metadata objects
        console.log(data)
    })
    
    
    
})

标签: javascriptd3.js

解决方案


推荐阅读