如何匹配json格式?

问题描述 投票:0回答:2

我按照教程在 javascript ajax 中创建烛台图。但是现在我想实现一个 api,这样就可以在教程使用的 json 文件中选择一个时间刻度而不是固定的时间刻度。

原文格式:

`{
    "x": 1483381800000,
    "y": [
        65.860001,
        66.139999,
        64.599998,
        65.400002
    ]
}`

我不确定 x 指的是什么,但我假设它必须是时间,但不确定为什么它是那个值。 但是对于 y 它是 [open,high,low,close] 因为我将它们与 api 的值进行了比较。

来自我的 api 的格式:

`{
        "datetime": "2017-01-03",
        "open": "65.86000",
        "high": "66.14000",
        "low": "64.60000",
        "close": "65.40000",
        "volume": "9519838"
 }`

如何将其转换为原始格式,以便教程中的代码仍然有效? 这是实际的代码:

`function parseData(result) {
    console.log(result.values);
        for (var i = 0; i < result.length; i++) {
    dps.push({
        x: result[i].datetime,
        y: result[i].open
        });
    }
    chart.render();
}`
javascript ajax api
2个回答
0
投票

应该可以做到

function parseData(result) {    
    for (var i = 0; i < result.length; i++) {
        var date = new Date(result[i].datetime);

        dps.push({
          x: date.getTime(),
          y: result[i].open
        });
    }
    chart.render();
}

0
投票

如果你是对的,原始格式中的原始和“x”是日期时间,那么正如我们所见,它们必须以毫秒为单位。

通过这个简单的代码,我们可以在 javascript 中将毫秒转换为日期时间

const x = 1483381800000; // timestamp
const date = new Date(x); // create a new Date object
console.log(date); // Mon Jan 02 2017 15:30:00 GMT-0300 (Argentina Standard Time)

要再次将这个新日期转换为毫秒,只需执行此操作

// date is a datetime object.
console.log(date.getTime()) // datetime in miliseconds

现在,由于时区差异,您在处理日期时必须格外小心,做这种事情时请记住这一点。

© www.soinside.com 2019 - 2024. All rights reserved.