2011-08-23 79 views
1

可能重複:
How might I extract the property values of a JavaScript object into an array?解析一個json數組到一個javascript數組?

所以我有一個JSON陣列從一個非常簡單的服務器充當一個數組到我的本地服務器。我希望將數據解析爲JavaScript,以便在我的Web應用程序中使用。

我將如何將JSONP數組轉換爲javascript數組?並失去JSON中的'名稱'。

例如

myjsoncallback({"h1": "cmPanel", "h2" : "cmAuto", "h3": 0}) 

成爲提前棧

(["cmPanel","cmAuto",0]) 

謝謝,一如既往我對任何幫助,您可以提供感激不盡!

回答

3

這樣的事情?

function myjsoncallback(obj) { 
    var result = []; 

    for (var key in obj) { 
    result.push(obj[key]); 
    } 

    // result is now an array of the input object's values. 
} 

如果你正在使用jQuery 1.6或更高版本,jQuery's $.map() function now works against objects和簡化的語法多一點(雖然它做的引擎蓋下是相同的):

function myjsoncallback(obj) { 
    var result = $.map(obj, function(value, key) { 
    return value; 
    }); 
} 

要使用jQuery的$使用此.getJSON調用到正確支持JSONP服務,你可以做這樣的事情:

$.getJSON('http://some.api.com/x/y/x?callback=?', function(response) { 
    var values = $.map(response, function(value, key) { 
    return value; 
    }); 

    // Do something with "values" here. 
}); 

當您指定callback=?而不是硬編碼自己的回調函數吶我,jQuery會自動替換每個請求的唯一命名的一個(這樣,如果最終有多個同時請求,您不必擔心保持哪個回調執行與哪個請求匹配)。既然它爲你做了這些,你可以傳入一個匿名函數作爲回調參數,而不用擔心設置一個獨立的函數。

+0

感謝jQuery的解決方案,我會附上這個我成功回調$ .getJSON內部或外部通話? – Xavier

+0

@Xavier:編輯我的答案,用$ .getJSON來使用它。 –

+0

傳說中,你是 – Xavier

0
function myjsoncallback(data) { 
    var output = []; 
    for (var x in data) { 
    output.push(data[x]); 
    } 
    return output; 
} 

myjsoncallback({"h1": "cmPanel", "h2" : "cmAuto", "h3": 0}); 
0
var ar = []; 
for (var prop in your_json) { 
     ar.push(your_son[prop]); 
    } 

我希望這有助於