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