如何从JSON对象中获取具体值?[duplicate]

juzqafwq  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(118)
    • 此问题在此处已有答案**:

(31个答案)
4天前关闭。
我正在运行一个返回json数据的函数:

const stocks = await response.json();
let stocksData = stocks.values;

如果打印结果,则结果为:

0 :  {datetime: '2023-01-18', open: '1.07940', high: '1.08870', low: '1.07670', close: '1.07970'}
1 :  {datetime: '2023-01-19', open: '1.07945', high: '1.08365', low: '1.07820', close: '1.08300'} 
2 :  {datetime: '2023-01-20', open: '1.08300', high: '1.08585', low: '1.08020', close: '1.08530'} 
3 :  {datetime: '2023-01-23', open: '1.08595', high: '1.09270', low: '1.0

我尝试将值取为:打开、高、低、关闭,代码行如下:

var open = stocksData["open"];

并打印:
console.log("Open: " + open);
我得到结果:
开放:未定义
我认为这是因为stocksData是一个对象,并尝试将其更改为字符串,然后尝试再次访问该值,如下所示:

var b = JSON.parse(JSON.stringify(stocksData)); 
var high = b["high"];
console.log("High: " + high);

我仍然得到:
高:未定义
现在我被困在这里了,我哪里做错了?

fdbelqdn

fdbelqdn1#

stocks.values似乎是一个数组,因此您可以使用类似于

var open = stocksData[0]["open"];

或者,您可以使用某种for-循环遍历数组
编辑:

for (entry of stocksData) {
  console.log('Open: ' + entry.open)
  console.log('High: ' + entry.high)
  console.log('Low: ' + entry.low)
  console.log('Close: ' + entry.close)
}

有关数组和循环的所有文档,请参见here

相关问题