2012-07-12 168 views
3

我想從JSON解析一個字符串,並將這些元素轉換成Javascript中的數組。這是代碼。解析JSON字符串到數組

 var data = "{"fname":"Todd","lname":"James","cascade":"tjames","loc":"res","place":"home", "day0":"0,1,2,3,"}"; 
     var getDay = data.day0; 
     var getDayArray = getDay.split(","); 

本質上講,我試圖讓day0,這是0,1,2,3,並與

[0] = 0 
[1] = 1 
[2] = 2 
[3] = 3 

的結構什麼是最好的方式把它變成一個數組去做這個?

+0

'VAR數據=「{‘...’} '; data = JSON.parse(data);',etc? – 2012-07-12 21:44:53

+0

首先,你的對象標記是無效的。其次,你有什麼嘗試? – RobB 2012-07-12 21:45:44

+0

等等...你改變了你的代碼,現在沒有JSON – Dancrumb 2012-07-12 21:45:46

回答

4

就是這樣。這是尾隨的逗號故意嗎?

var getDayArray = JSON.parse(data).day0.split(",") 
+1

你錯過了'',''in'split()' – Dancrumb 2012-07-12 21:50:04

+0

垃圾,由於某種原因,我的大腦認爲','是默認 – 2012-07-12 21:58:47

+0

我不得不穀歌,以確保它不是:o) – Dancrumb 2012-07-12 22:17:32

0

這是內置於大多數現代瀏覽器JavaScript引擎。根據你所針對的環境,你可以簡單地做:

var data = JSON.parse(jsonString); 
day0 = data.day0.split(","); 

這很簡單。如果您的目標環境無法訪問內置的JSON對象,則應嘗試this JSON project

0

大多數現代瀏覽器都支持JSON.parse()。你會正是如此使用它:

var dataJSON = '{"fname":"Todd","lname":"James","cascade":"tjames","loc":"res","place":"home", "day0":"0,1,2,3"}'; // You need to remove the trailing comma 
    var data = JSON.parse(dataJSON); 
    var getDay = data.day0; 
    var getDayArray = getDay.split(","); 

但是,它可能是更好的修改無論是生成dataJSON值,返回

var dataJSON = '{"fname":"Todd","lname":"James","cascade":"tjames","loc":"res","place":"home", "day0":[0,1,2,3]}';