2013-11-09 134 views
-3

我想知道的是,可用於JSON對象轉換爲Java腳本陣列這裏的例子JSON對象JavaScript數組

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

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

的底線是避免for循環是最快的功能儘可能多

+1

你有一個JSON字符串,而不是一個JSON「對象」。 – kay

+0

供將來參考:JavaScript中沒有關聯數組。所以使用'someObject [key] = value;'someObject是任何對象'{}'。它可以是一個數組,因爲數組是一個對象,並可以通過'someArray [key] = value'賦予其他屬性,但不需要它是一個數組。你想要做的是讓對象A.key取對象B.key的值,其中B是用JSSON.parse創建的數組中的第一個元素你可以用'var configObj = {}; ... obj = JSON.parse(config)[0]; for(var k in obj){configObj [k] = obj [k];}' – HMR

回答

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 

我想要的輸出爲編曲[VAR1] = 「VAL1」]不[對象]

這意味着你想在數組中的索引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"] 
+0

是的,自IE8以來每個瀏覽器都知道'JSON.parse':http:// caniuse。 com/json – kay

+0

我認爲JSON.parse的返回值是Object not array,我想返回的是數組類型不是Object –

+0

Array是JavaScript中的一個對象。所以答案會很好。 – kay

0

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

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

我通常使用jQuery,雖然這可能不再是首選。

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

這應該在一些較舊的瀏覽器中運行良好,如果您當然需要這種類型的東西。