javascript d'objet - Obtenir le nombre total d'éléments sur l'objet Json?




parcourir un (4)

Dupliquer possible:
Longueur de l'objet Javascript (c'est-à-dire le tableau associatif)

J'ai un objet similaire à celui-ci:

var jsonArray = {
  '-1': {
    '-1': 'b',
    '2': 'a',
    '10': 'c'
  },
  '2': {
    '-1': 'a',
    '2': 'b',
    '10': 'a'
  },
  '5': {
    '-1': 'a',
    '2': 'a',
    '10': 'b'
  }
};

jsonArray.length d'obtenir sa longueur, le problème est que jsonArray.length renvoie 5 au lieu de 3 (qui est le total des éléments qu'il a). Le tableau est relativement long (a 1000x2000 éléments) et cela doit être fait beaucoup de fois chaque seconde. Comment puis-je obtenir le nombre d'articles plus efficacement?


Answers

Est-ce votre code actuel? Un objet javascript (qui est ce que vous nous avez donné) n'a pas de propriété length, donc dans ce cas, exampleArray.length renvoie undefined plutôt que 5.

Ce stackoverflow explique les différences de longueur entre un objet et un tableau, et ce stackoverflow montre comment obtenir la 'taille' d'un objet.



En plus de la réponse de Kieran, apparemment, les navigateurs modernes ont une fonction Object.keys . Dans ce cas, vous pourriez faire ceci:

Object.keys(jsonArray).length;

Plus de détails dans cette réponse sur Comment lister les propriétés d'un objet javascript


JSONLint a une implémentation open-source sur github qui peut être utilisée en ligne de commande ou incluse dans un projet node.js.

npm install jsonlint -g

et alors

jsonlint -p myfile.json

ou

curl -s "http://api.twitter.com/1/users/show/user.json" | jsonlint | less




javascript json