2013-03-07 124 views
1

我想在我的Javascript中將一個字符串轉換爲JSON對象。當我轉換成JSON對象的日期完全改變如何將字符串與日期轉換爲Json對象?

此字符串是我的字符串

var JsonData=[[2013-02-27,787],[2013-02-26,131],[2013-02-02,0],[2013-01-20,8],[2012-12-28,12]] 

我轉換成JSON對象,具有以下

var json = eval(JsonData); 

然後我得到以下結果警報

1984,787,1985,131,2009,0,1992,8,1972,12 

任何人都可以請指導我嗎?我該如何解決這個問題?

現在,我得到以下

Timestamp: 3/7/2013 1:10:36 PM 
Error: TypeError: this.proxy.getTime is not a function 

在我javascript..so帶我在想,它怎麼一回事,因爲日期不正確使用JSON Object..is會這樣?任何人都可以轉換的錯誤,請指南?

+1

哇我注意到數據轉換進行的算術運算:) 2013-02-27 = 1984. 2013-02-26 = 1985。只是猜測,但也許你應該把它們用引號引起來。 :) – Oneb 2013-03-07 07:24:48

+0

ok.i在json對象中有相同的字符串,但它現在不能繼續工作..因爲我希望它作爲json中的日期對象..所以請你告訴我該怎麼做 – 2013-03-07 07:29:34

回答

1
<script> 
var JsonData=[[2013-02-27,787],[2013-02-26,131],[2013-02-02,0],[2013-01-20,8],["2012-12-28,12"],["Fri May 04 2012 01:17:07 GMT-0700 (PDT)"]] 
var json = eval(JsonData); 
alert(json); 
</script> 

然後我得到的結果是1984,787,1985,131,2009,0,1992,8,2012-12-28,12,週五2012年5月4日1時17分07秒GMT-0700(太平洋夏令時)。所以我認爲這些日期應該用雙引號括起來。 我希望這可以幫助。

+0

是的,我解決了這個問題...但它現在不工作前..因爲我想它作爲JSON的日期對象..你可以請告訴我如何做到這一點 – 2013-03-07 07:33:58

+0

我認爲你可能需要在作爲JSON發送之前序列化日期。你可以看看這個帖子也可以,它可以幫助你。[見這篇文章](http://stackoverflow.com/questions/4511705/how-to-parse-json-to-receive-a-date-對象中的JavaScript)。在很多情況下,我看到數據就是這樣發送的。另外我不確定JSON的日期方面。 – Hari 2013-03-07 09:00:34

3

不要使用eval()

使用JSON.parse()來將字符串轉換成JSON對象。另外,由於您的JsonData不是有效的JSON,請使用JSON.stringify()

var JsonData = [[2013-02-27,787],[2013-02-26,131],[2013-02-02,0],[2013-01-20,8],[2012-12-28,12]]; 
JSONObject = JSON.parse(JSON.stringify(JsonData)); 
相關問題