2012-10-08 4 views
1

J'ai installé une boucle en utilisant .each pour obtenir encode chaîne de JSON à un tableau à utiliser pour jquery jqBarGraphjquery la boucle de sur tableau avec parseInt - donne NaN

La boucle:

 $.each(dataarray, function (i, item) { 
     JSarray[i] = [parseInt(item['count']),parseInt(item['year'])];       
    }); 

Le données dans le tableauDonnees contient une chaîne json =

{"graph":{"count":"45","year":"2007"}} 

après boucle .each contient ces valeurs dans la JSarray

[45, 2007] 

Ainsi, une seule chaîne fonctionne, quand j'essaie de transmettre plus de données que je reçois le vale NaN

Si je tente d'utiliser cette chaîne de encode JSON dans les données DataArray NAN VIENT

{"graph":[{"count":"45","year":"2007"},{"count":"390","year":"2008"}]} 

Mon JSarray ressemble à ceci

[NaN, NaN] 

Qu'est-ce que je fais mal?

+0

Vous avez maintenant une liste de tableau au lieu d'un dict pour la propriété de "graphique". Vous avez besoin de mettre à jour la méthode $ .each – karthikr

+0

merci beaucoup - Je n'ai pas encore eu ma tête autour du tableau et des objets. – user1557970

Répondre

2
{"graph":[{"count":"45","year":"2007"},{"count":"390","year":"2008"}]} 

La propriété contient maintenant un tableau. Vous aurez besoin de itérer sur cela pour analyser vos ints.

J'essayer ...

$.each(dataarray.graph, function(_, obj){ 
    JSarray.push([parseInt(obj.count), parseInt(obj.year)]); 
}); 

Gardez à l'esprit, une boucle for régulière serait mieux $.each est un peu cher pour cela.

+0

Merci beaucoup cela a fonctionné comme un charme - j'ai vraiment besoin de mettre la tête autour des objets et des tableaux – user1557970

+0

@ user1557970 vous êtes les bienvenus. Si cette réponse a fonctionné pour vous, acceptez-la. Si ce n'est pas le cas, pensez à accepter l'une des autres réponses pour montrer votre appréciation. Bienvenue à SO. – Kyle

0

Effectuez les opérations suivantes:

$.each(dataarray.graph, function (i, item) { 
    JSarray[i] = [parseInt(item['count']),parseInt(item['year'])];       
}); 
0

Vous devez:

$.each(dataarray['graph'], function (i, item) { 
    JSarray[i] = [parseInt(item['count']),parseInt(item['year'])];       
});