j'ai un objet json qui est renvoyé par une demande AJAX et j'ai des problèmes avec le .length
car il continue de revenir undefined
. Je me demande simplement si je l'utilise correctement:
console.log(data.length);
console.log(data.phones.length);
Ils retournent tous les deux undefined
même s'ils sont des objets valides.
Mise à jour:
exemple de l'objet JSON renvoyé:
{"reqStatus":true,"phones":{"one":{"number":"XXXXXXXXXX","type":"mobile"},"two":{"number":"XXXXXXXXXX","type":"mobile"}}}
javascript
json
nkcmr
la source
la source
Réponses:
Vous pouvez utiliser quelque chose comme ça
la source
Votre problème est que votre objet téléphones n'a pas de propriété de longueur (sauf si vous le définissez quelque part dans le JSON que vous renvoyez) car les objets ne sont pas les mêmes que les tableaux, même lorsqu'ils sont utilisés comme tableaux associatifs. Si l'objet téléphones était un tableau, il aurait une longueur. Vous avez deux options (peut-être plus).
Modifiez votre structure JSON (en supposant que cela soit possible) afin que les «téléphones» deviennent
(notez qu'il n'y a pas d'identifiant mot pour chaque téléphone car ils sont retournés dans un tableau indexé 0). Dans cette réponse
phones.length
sera valide.Parcourez les objets contenus dans l'objet de votre téléphone et comptez-les au fur et à mesure, par exemple
Si vous ne ciblez que de nouveaux navigateurs, l'option 2 pourrait ressembler à ceci
la source
Pensez à utiliser underscore.js . Il vous permettra de vérifier la taille c'est à dire comme ça:
la source
vous n'avez pas besoin de changer votre format JSON.
remplacer:
avec:
la source
la source
essaye ça
la source
utiliser celui-ci
ou
la source
la source
TechnologyId
propriété