2011-08-23 75 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]); 
    } 

我希望这有助于