2012-12-04 8 views
0

Im très nouveau à JSON. J'ai déjà essayé les bases de JSON mais dans les exemples Im l'utilisant est dans le tableau et la clé est dans la chaîne. Le mien est assez différent, c'est un objet et la clé est un nombre. L'exemple de mon objet JSON est var ojbJSON = {55: 3, 23: 2};. Mes problèmes sont que je ne peux pas obtenir la longueur d'un objet car il n'a pas de longueur d'attribut et si je fais quelque chose comme alert(objJSON.55); pour obtenir la valeur 3 cela provoque une erreur javascript. S'il vous plaît, ne demandez pas pourquoi j'insiste là-dessus. S'il vous plaît aider. Merci.JSON - Comment faire une boucle sur un objet json?

+0

bien accord En suivant [la spécification JSON] (http://json.org/) la construction que vous avez n'est même pas valide JSON: un objet (ce que vous avez basé sur le '{}' qui l'entoure est composé de nom- paires de valeurs, où le nom est supposé être une chaîne. IMO cette utilisation non standard est vouée à causer des problèmes quelque part sur la ligne ... – fvu

Répondre

1

Vous avez itérer pour obtenir le nombre:

var i=0; 
for (var key in objJSON) i++; 
alert(i); 

Vous auriez probablement envie d'écrire une aide pour cela, quelque chose comme:

function getLength(obj) { 
    var i=0; 
    for (var key in objJSON) i++; 
    return i; 
} 
alert(getLength(objJSON)); 

Pour obtenir une clé quand il n » t un nom de variable Javascript valide (comme des nombres, ou des noms qui incluent des traits d'union, etc.), vous pouvez utiliser la notation de parenthèse:

alert(objJSON[55]); 
+0

Vous êtes vraiment aidé, mais j'ai quelque chose de bizarre je l'ai essayé 'for (var key in objJSON) { alert (key +": " + objJSON [clé]); } 'mais c'est dans l'ordre inverse. – NinjaBoy

+0

@NinjaBoy wow vous avez raison ... c'est étrange. Je ne sais pas de quoi il s'agit. Incidemment, si vous allez faire beaucoup de manipulation d'objet, il peut être intéressant de vérifier Underscore.js. Il a des méthodes utilitaires pour des choses comme l'obtention de toutes les clés ou valeurs dans un objet, le tri, le regroupement, etc – McGarnagle

+0

Merci. Je vais essayer ça !!! – NinjaBoy

Questions connexes