comment compter la longueur de l'élément JSON array [dupliquer]

cette question a déjà une réponse ici:

  • comment compter efficacement le nombre de clés/propriétés D'un objet en JavaScript? 19 réponses

j'essaie de compter la longueur de l'élément JSON array. Je sais compter la longueur du tableau en utilisant json.array.length . C'est je dois trouver combien d'articles dans chaque index.

si mon tableau est:

  {"shareInfo":[{"id":"1","a":"sss","b":"sss","question":"whi?"},
  {"id":"2","a":"sss","b":"sss","question":"whi?"},
  {"id":"3","a":"sss","b":"sss","question":"whi?"},
  {"id":"4","a":"sss","b":"sss","question":"whi?"}]}

alors je dois trouver la longueur de {"id":"1","a":"sss","b":"sss","question":"whi?"} . Dans ce Il ya quatre points. J'ai essayé avec data.shareInfo[i].length . Mais il produit une erreur.

s'il vous Plaît quelqu'un me dire comment trouver la longueur.... Grâce....

20
demandé sur James 2013-03-04 23:07:39

4 réponses

avant de répondre, lisez cette Documentation une fois. Alors vous comprenez clairement la réponse.

essayez ceci, ça peut marcher pour vous.

Object.keys(data.shareInfo[i]).length
45
répondu James 2013-03-04 19:35:32

tout d'abord, si l'objet auquel vous avez affaire est une chaîne de caractères, vous devez l'analyser puis calculer la longueur des touches:

obj = JSON.parse(jsonString);
shareInfoLen = Object.keys(obj.shareInfo[0]).length;
9
répondu ahjmorton 2013-03-04 19:45:15

tout d'abord, il n'existe pas d'objet JSON. JSON est un format de chaîne de caractères qui peut être utilisé comme une représentation littérale D'un objet Javascript.

comme JSON est une chaîne de caractères, Javascript la traitera comme une chaîne de caractères, et non comme un objet (ou un tableau ou ce que vous essayez d'utiliser comme tel.)

Voici une bonne référence JSON pour clarifier cette différence:

http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json /

donc si vous avez besoin d'accomplir la tâche mentionnée dans votre question, la seule chose que vous pouvez ainsi est d'écrire un analyseur personnalisé, ou convertir la chaîne JSON à un objet. Il y a plusieurs bibliothèques pour accomplir ceci. Regardez http://www.json.org/js.html pour référence.

0
répondu phatpenguin 2013-03-04 19:40:38

je pense que vous devriez essayer

data = {"shareInfo":[{"id":"1","a":"sss","b":"sss","question":"whi?"},
{"id":"2","a":"sss","b":"sss","question":"whi?"},
{"id":"3","a":"sss","b":"sss","question":"whi?"},
{"id":"4","a":"sss","b":"sss","question":"whi?"}]};

ShareInfoLength = data.shareInfo.length;
alert(ShareInfoLength);
for(var i=0; i<ShareInfoLength; i++)
{
alert(Object.keys(data.shareInfo[i]).length);
}
-1
répondu Kabir 2013-03-04 19:30:33