2012-07-12 167 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]}';