我已将 Java HashMap 作为 JSON 传递到客户端。 生成的 JSON 如下:
{
"2013-02-27T07:25:35.000+0000": 40,
"2013-03-01T07:25:35.000+0000": 33,
"2013-02-26T07:25:35.000+0000": 25,
"2013-02-23T07:25:35.000+0000": 54,
"2013-03-03T10:12:59.000+0000": 26,
"2013-03-02T07:12:59.000+0000": 25
}
但是为了绘制到Flot图表上,我需要以下格式的输入:
[
[1328983200000, 40],
[1328983200000, 33],
[1328983200000, 25],
[1328983200000, 54],
[1328983200000, 26],
[1328983200000, 25]
];
其中第一个值为 Unix Timestamp X 1000
(Flot 中的时间序列支持基于 Javascript 时间戳,即在任何需要或传递时间值的地方,都会使用 Javascript 时间戳数字。这是一个数字,而不是 Date 对象。Javascript 时间戳是自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。这几乎与 Unix 时间戳相同,只不过它以毫秒为单位,因此请记住乘以 1000!)
如何转换它?谁能好心指导一下。 :(
最佳答案
var list = {
"2013-02-27T07:25:35.000+0000": 40,
"2013-03-01T07:25:35.000+0000": 33,
"2013-02-26T07:25:35.000+0000": 25,
"2013-02-23T07:25:35.000+0000": 54,
"2013-03-03T10:12:59.000+0000": 26,
"2013-03-02T07:12:59.000+0000": 25
}, arr = [];
for (var key in list) {
arr.push([+new Date(key)*100, list[key]]); //One simple line of code
} //Keep trying!
console.log(arr);
关于javascript - 如何将 JSON 转换为 javascript 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15217746/