2

我有一个包含以下 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 中的数组,以便数组 [0] 具有“2012 年 6 月 20 日下午 3:02”数组 [1] 具有“2012 年 6 月 20 日下午 3:26”等等。

4

3 回答 3

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。

于 2012-06-21T23:30:30.777 回答
2

或者,如果您的目标是 ES5 及更高版本:

// myObject = { '0': 'a', '1': 'b' };
var myArray = Object.keys(myObject).map(function(key) { return myObject[key]; });
// myArray = [ 'a', 'b' ];
于 2012-06-21T23:35:04.260 回答
0

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

于 2012-06-22T00:00:52.817 回答