javascript - 解析 JSON 并创建可读数组
问题描述
这里的目标是将来自 API(无法控制)的 JSON 解析到我自己制作的数组中。我有两个问题:
我不确定如何在“元数据”下获取 #2 值。
如果我想获取第一个名为“时间序列(5 分钟):”的数组并将其放入自己的数组中,我只是不确定。会不会像
var bodyParsed = JSON.parse(data);
let bodyArray = bodyParsed['Time Series (5min:']
for (var i = 0; i < bodyArray.length; i++) {
firstArray.push([
bodyArray[i][0], //"1. open": "125.4800",
bodyArray[i][1], //"2. high": "125.4800",
])
}
JSON 示例
var data = [
{
"Meta Data": {
"1. Symbol": "XXX",
"2. Last Refreshed": "2020-07-17 19:25:00",
"3. Interval": "5min",
},
"Time Series (5min)": {
"2020-07-17 19:25:00": {
"1. open": "125.4800",
"2. high": "125.4800",
"3. low": "125.4800",
"4. close": "125.4800",
"5. volume": "100"
},
"2020-07-17 19:05:00": {
"1. open": "125.2400",
"2. high": "125.2400",
"3. low": "125.2400",
"4. close": "125.2400",
"5. volume": "200"
},
"2020-07-17 19:00:00": {
"1. open": "125.4000",
"2. high": "125.4000",
"3. low": "125.2400",
"4. close": "125.2400",
"5. volume": "1048"
},
"2020-07-17 18:40:00": {
"1. open": "125.3000",
"2. high": "125.3000",
"3. low": "125.3000",
"4. close": "125.3000",
"5. volume": "248"
},
"2020-07-17 18:35:00": {
"1. open": "125.3500",
"2. high": "125.3500",
"3. low": "125.3000",
"4. close": "125.3000",
"5. volume": "399"
}
}
]
解决方案
这是我运行的代码,似乎可以解决您的问题(完整):
var data = `[{
"Meta Data": {
"1. Symbol": "XXX",
"2. Last Refreshed": "2020-07-17 19:25:00",
"3. Interval": "5min"
},
"Time Series (5min)": {
"2020-07-17 19:25:00": {
"1. open": "125.4800",
"2. high": "125.4800",
"3. low": "125.4800",
"4. close": "125.4800",
"5. volume": "100"
},
"2020-07-17 19:05:00": {
"1. open": "125.2400",
"2. high": "125.2400",
"3. low": "125.2400",
"4. close": "125.2400",
"5. volume": "200"
},
"2020-07-17 19:00:00": {
"1. open": "125.4000",
"2. high": "125.4000",
"3. low": "125.2400",
"4. close": "125.2400",
"5. volume": "1048"
},
"2020-07-17 18:40:00": {
"1. open": "125.3000",
"2. high": "125.3000",
"3. low": "125.3000",
"4. close": "125.3000",
"5. volume": "248"
},
"2020-07-17 18:35:00": {
"1. open": "125.3500",
"2. high": "125.3500",
"3. low": "125.3000",
"4. close": "125.3000",
"5. volume": "399"
}
}
}]`;
var bodyParsed = JSON.parse(data);
let bodyArray = []
// Meta Data #2
let metaData = bodyParsed[0]["Meta Data"];
let num2 = metaData["2. Last Refreshed"];
bodyArray.push(num2);
// Time series.
let timeSeries = bodyParsed[0]["Time Series (5min)"][num2];
bodyArray.push(
timeSeries["1. open"],
timeSeries["2. high"],
timeSeries["3. low"],
timeSeries["4. close"],
timeSeries["5. volume"]
);
console.log(bodyArray);
推荐阅读
- multithreading - Tkinter python中的线程
- html - 如何使用 Bootstrap 创建多行组?
- python-3.x - 如何强制子类为抽象属性(在 Pycharm 中)实现 setter(和 getter)?
- spring-data-rest - Spring Data Rest 中 POST 的只读属性
- angularjs - Bearer error="invalid_token", error_description="The token is expired" in Asp.Net core Web APi with Angular 6 Azure ad
- inno-setup - 在 Inno 下载插件中自定义“正在下载”消息
- python - 基于特定子字符串的python正则表达式提取
- python - 这个代码块在这个程序中做了什么?
- node.js - 创建 nodejs webapp - azure 和 Visual Studio 代码
- c# - 性能差异 WndProc WM_PAINT 与 OnPaint