簡體   English   中英

如何將JSON轉換為javascript數組?

[英]How can I convert JSON into javascript array?

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

如何轉換? 任何人都可以指導。 :(

您可以做的是遍歷該對象,在擁有的日期之后創建一個Date對象,使用getTime()方法獲取以毫秒為單位的時間戳,創建一個新數組,然后將其壓入您的主數組中。 這可能不是最好的解決方案,但它會起作用。

假設您的JSON對象名為obj;

var mainArray = [];
for (var x in obj) {
    var tmpDate = (new Date(x)).getTime();
    var smallArray = [tmpDate, obj[x]];
    mainArray.push(smallArray);
}
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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM