将JSON转换为数组

时间:2012-06-21 23:28:09

标签: javascript json

我有一个包含以下JSON字符串的变量:

{
    "0" : "Jun 20, 2012 03:02 PM",
    "1" : "Jun 20, 2012 03:26 PM",
    "2" : "Jun 21, 2012 01:12 PM",
    "3" : "Jun 21, 2012 01:25 PM",
    "4" : "Jun 21, 2012 02:42 PM",
    "5" : "Jun 21, 2012 02:43 PM",
    "6" : "NULL"
}

我希望将此JSON转换为javascript中的数组 array [0]有“Jun 20,2012 03:02 PM”数组[1]有“Jun 20,2012 03:26 PM”等等。

3 个答案:

答案 0 :(得分:5)

您必须先将JSON字符串解析为javascript对象。

<强>的JavaScript

var object = JSON.parse(JSONString);

要在没有JSON支持的情况下填充浏览器: http://bestiejs.github.com/json3/


然后,将该对象转换为数组:

<强>的JavaScript

var arr = [];
for(var i in object) {
    if(object.hasOwnProperty(i)) {
        arr.push(object[i]);
    }
}

jQuery

var arr = $.map(obj,function(value){ return value; });

小提琴:http://jsfiddle.net/iambriansreed/MD3pF/

注意:由于原始海报没有提到jQuery,因此值得一提的是,仅为这些实例加载jQuery是不值得的,如果你还没有使用jQuery,最好还是使用纯JavaScript。

答案 1 :(得分:2)

或者,如果您的目标是ES5及以上:

// myObject = { '0': 'a', '1': 'b' };
var myArray = Object.keys(myObject).map(function(key) { return myObject[key]; });
// myArray = [ 'a', 'b' ];

答案 2 :(得分:0)

var currentVersion = {/ literal} {$ displayedVersion} {literal};            var jsonObj = eval('('+ {/ literal} {$ json} {literal} +')');