在D3中使用嵌套的JSON数据

在D3中使用嵌套的JSON数据,json,d3.js,Json,D3.js,我的react应用程序进行API调用,以获取JSON格式的一些股价数据 [![在此处输入图像描述][1] 我不知道如何访问每个嵌套日期的值,并使用它们制作图表。对此,最好的方法是什么 如果您有任何建议,我们将不胜感激。谢谢!不确定您希望如何绘制这些数据。我现在假设您只对收盘价感兴趣 您可以使用javascript特性“映射”将数据转换为更容易处理的形状,以便D3进行处理 // Assuming data is in a variable called data // map over the k

我的react应用程序进行API调用,以获取JSON格式的一些股价数据

[![在此处输入图像描述][1]

我不知道如何访问每个嵌套日期的值,并使用它们制作图表。对此,最好的方法是什么


如果您有任何建议,我们将不胜感激。谢谢!

不确定您希望如何绘制这些数据。我现在假设您只对收盘价感兴趣

您可以使用javascript特性“映射”将数据转换为更容易处理的形状,以便D3进行处理

// Assuming data is in a variable called data
// map over the keys (dates)
const cleaned = Object.keys(data.history).map(date => {
    return {
        date,
        close: data.history[date].close
    }
})
结果数据将是如下所示的数组:

[  {
  "date": "2020-01-16",
  "close": "23.45"
  },
  {
  "date": "2020-01-17",
  "close": "25.15"
  },
  {
  "date": "2020-01-18",
  "close": "23.99"
  },
]

这有帮助吗?

不确定您想如何绘制这些数据。我现在假设您只对收盘价感兴趣

您可以使用javascript特性“映射”将数据转换为更容易处理的形状,以便D3进行处理

// Assuming data is in a variable called data
// map over the keys (dates)
const cleaned = Object.keys(data.history).map(date => {
    return {
        date,
        close: data.history[date].close
    }
})
结果数据将是如下所示的数组:

[  {
  "date": "2020-01-16",
  "close": "23.45"
  },
  {
  "date": "2020-01-17",
  "close": "25.15"
  },
  {
  "date": "2020-01-18",
  "close": "23.99"
  },
]

这有帮助吗?

嘿,谢谢你的评论!实际上我想用所有的值创建一个烛台图,但我不确定如何开始使用此数据结构。如何迭代这些日期?我是d3新手。我成功地使用了fetch,但我看到有一个
d3.json
选项。你可以使用
d3.json()
,d3有一些像这样的“方便”方法,使它“更容易”,但这与使用fetchHey几乎是等价的!我编辑了我的问题。如果您有时间的话,我会非常感谢您提供一些关于如何构造和解析此fetch请求中的数据的建议。我使用了您的方法,但我不确定如何在请求
中实现它。然后
您是否将此问题转化为其他问题,或者你只是添加了一堆东西?我只是添加了一个编辑。我添加的js文件解析TSV数据。我想知道我是否可以取而代之的是JSON数据并使用你提供的映射代码,然后使用
d3.JSON
而不是“tsvParse”传递它。谢谢你的回复。谢谢你的评论!实际上我想创建一个烛台k图表使用所有的值,但我只是不确定如何开始使用此数据结构。我如何迭代这些日期?我是d3新手。我成功地使用了fetch,但我看到有一个
d3.json
选项。您可以使用
d3.json()
,d3有一些类似这样的“方便”方法来“简化”,但这与使用fetchHey几乎是等价的!我编辑了我的问题。如果您有时间的话,我会非常感谢您提供一些关于如何构造和解析此fetch请求中的数据的建议。我使用了您的方法,但我不确定如何在请求
中实现它。然后
您是否将此问题转化为其他问题,或者你只是添加了一堆东西?我只是添加了一个编辑。我添加的js文件解析TSV数据。我想知道我是否可以取而代之的是获取JSON数据并使用您提供的映射代码,然后使用
d3.JSON
而不是“tsvParse”传递它。谢谢回复