C'était une erreur très simple de mon côté, merci à tous ceux qui ont répondu.Travailler avec un fichier JSON et Javascript
Répondre
Vous devez accéder au premier artiste avant de saisir le id
(car il est un tableau) comme ceci:
var artisttype = Artists[0].id;
Il serait mieux si vous pouviez changer le JSON toujours retourner un tableau, même avec un résultat ... malheureusement, certaines plateformes ne le font pas, pour des raisons qui dépassent ma compréhension.
Vous avez raison de dire que cela pose problème, et pour être honnête, il semble que "l'autre extrémité" qui vous envoie le JSON soit incohérente.
Le problème est que quand il y a plusieurs éléments ils vous envoient un tableau pour la propriété id
, et quand il y a un seul élément qu'ils sont juste vous envoyer une simple valeur (par exemple un entier). Idéalement, lorsqu'il y a un seul élément, vous devriez recevoir un tableau à un seul élément - cela vous permettrait d'utiliser le même code d'analyse basé sur un tableau à chaque fois. Si vous ne pouvez pas les convaincre de changer ce qu'ils vous envoient, alors le mieux est de faire ce que vous faites actuellement; voir si Artists.id
est défini, utilisez-le si c'est le cas, sinon revenez à id
en tant que tableau.
for(var propertyname in responseData){
//will loop through the different elements in your json array
alert(responseData[propertyName]); //will output the valueof each element
}
.... pourquoi cela a-t-il été mis à jour? Il ne répond pas * à toutes les questions ici. –
Je ne suis pas sûr, je n'ai pas encore la possibilité de modifier une question. – user508096
Cependant, si plus d'un résultat est retourné Artists.id; retournera "indéfini". Donc j'ai besoin de le changer: Artists.id [0];
cela ne peut pas être Artists.id devrait être "objet" non indéfini si Artists.id [0] existe. Peut-être que c'est comme indiqué Artistes [0] .id? et si oui, vous pouvez tester typeof (Artists) == typeof ([])
Exemple de fichier JSON serait utile – sunn0
Fournir un exemple de paquet JSON avec un résultat, et un autre avec plus d'un résultat. –
Merci soleil et Marcelo, j'ai mis à jour mon post original. – user508096