2011-08-23 4 views
1

Possible en double:
How might I extract the property values of a JavaScript object into an array?Analyser un tableau json dans un tableau javascript?

j'ai donc un tableau de JSON servi à partir d'un serveur très simple comme un tableau à mon serveur local. Je souhaite analyser les données en javascript pour l'utilisation prévue dans mon application Web.

Comment convertir un tableau JSONP en tableau javascript? et perdez les 'noms' dans JSON.

par exemple.

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

pour devenir

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

Merci à l'avance de la pile, comme toujours je suis reconnaissant pour toute aide que vous pouvez fournir!

Répondre

3

Quelque chose comme ça?

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. 
} 

Si vous utilisez jQuery 1.6+, jQuery's $.map() function now works against objects et simplifie la syntaxe un peu plus (si elle fait la même chose sous le capot):

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

Pour utiliser cela avec un $ jQuery .getJSON appel à un service qui prend en charge correctement JSONP, vous pouvez faire quelque chose comme ceci:

$.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. 
}); 

Lorsque vous spécifiez callback=? au lieu de coder en dur votre propre fonction de rappel na Moi, jQuery va automatiquement substituer un nom unique pour chaque requête (de cette façon, vous n'avez pas à vous soucier de savoir exactement quelle exécution de callback correspond à la requête si vous avez plusieurs requêtes simultanées). Comme il le fait pour vous, vous pouvez simplement passer une fonction anonyme pour le paramètre de rappel et ne pas vous soucier de la mise en place d'une fonction autonome du tout.

+0

Merci pour la solution jQuery je voudrais joindre ce rappel dans mon succès .getJSON de $ ou à l'extérieur de l'appel? – Xavier

+0

@Xavier: J'ai édité ma réponse avec un exemple d'utilisation avec $ .getJSON. –

+0

légende, vous êtes – 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]); 
    } 

J'espère que cette aide

Questions connexes