javascript - 如何将 JSON 转换为 javascript 数组?

标签 javascript arrays hashmap timestamp flot

我已将 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);

http://jsfiddle.net/DerekL/F4tst/

关于javascript - 如何将 JSON 转换为 javascript 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15217746/

相关文章:

JavaScript 类范围

javascript - WebUSB 按 deviceClass 和 deviceSubClass 过滤

javascript - 不使用 asp.net 按钮关闭 jQuery 弹出窗口

javascript - 如何在html中包含javascript文件?

javascript - 根据其他值合并数组中的对象

PHP 的 SPL : Do its interfaces involving arrays cover all array properties?

java - 修改 ArrayList<HashMap<String, Integer>> 进行更好的实现

java - 如何从给定的两个字符串数组形成第三个java数组

c++ - 如何实现尺寸有限的 map

java - 如何使用一组中的键和另一组中的值填充 HashMap