-3

我想知道可用于将 json 对象转换为 java 脚本数组的最快函数是什么,这里是一个示例

var j = '[{"var1":"val1", "var2":"val2"}]';

var arr  ===> [var1] = "val1"

底线是尽可能避免 for 循环

4

3 回答 3

3

大多数现代浏览器将支持本机JSON.parse功能。

var arr = JSON.parse('[{"var1":"val1", "var2":"val2"}]');

console.log(arr);

//Just to be clear for OP
console.log(Array.isArray(arr)); //true

我希望输出是 Arr[var1] = "val1"] 而不是 [Object]

这意味着您要在数组中的索引 0 处反对。

var obj = JSON.parse('[{"var1":"val1", "var2":"val2"}]')[0];

console.log(obj['var1']); //val1

如果您只想要这些值:

var values = JSON.parse('[{"var1":"val1", "var2":"val2"}]').reduce(function (values, obj) {
    for (var k in obj) values.push(obj[k]);
    return values;
}, []);

console.log(values); //["val1", "val2"]
于 2013-11-09T20:57:55.733 回答
0

我通常使用 jQuery,尽管这可能不再是首选。

var j = '[{"var1":"val1", "var2":"val2"}]';
var arr = jQuery.parseJSON( j );

如果您当然需要这种东西,这应该在一些较旧的浏览器中运行良好。

于 2013-11-09T21:00:14.630 回答
0

如果我理解正确,您可以使用JSON.parse.

var json = '[{"var1": "val1", "var2": "val2"}]';
var arr = JSON.parse(json);
于 2013-11-09T20:57:48.753 回答