【问题标题】:How can I convert JSON into javascript array?如何将 JSON 转换为 javascript 数组?
【发布时间】:2013-03-05 07:04:10
【问题描述】:

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

如何转换它?任何人都可以指导。 :(

【问题讨论】:

  • 你有没有尝试过?
  • 我试过这样做:hashMap.entrySet().toArray();没用

标签: javascript arrays hashmap timestamp flot


【解决方案1】:
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/

【讨论】:

  • 为什么要乘"Date(key)*100"?
  • @some_coder - 因为你必须将它乘以 100 才能与 OP 的预期结果相匹配。
  • 这就像一个魅力。非常感谢,@Derek。我肯定对你的内联评论有点尴尬,但把它当作建设性的批评。我应该更加努力。谢谢你指导我!
  • @LittleLebowski - 抱歉,我对评论部分可能有点太苛刻了。改变了。 :)
【解决方案2】:

您可以做的是遍历对象,创建一个日期对象,而不是您拥有的日期,使用 getTime() 方法以毫秒为单位获取时间戳,创建一个新数组,然后将其推送到您的主数组中。这可能不是最好的解决方案,但它会起作用。

假设你的 JSON 对象被命名为 obj;

var mainArray = [];
for (var x in obj) {
    var tmpDate = (new Date(x)).getTime();
    var smallArray = [tmpDate, obj[x]];
    mainArray.push(smallArray);
}

【讨论】:

    猜你喜欢
    • 2012-05-24
    • 1970-01-01
    • 2022-12-03
    • 2014-06-21
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    相关资源
    最近更新 更多