Longueur du tableau d’objects Json

Je travaille avec des Json similaires à:

{ "Apps" : [ { "Name" : "app1", "id" : "1", "groups" : [ { "id" : "1", "name" : "test group 1", "desc" : "this is a test group" }, { "id" : "2", "name" : "test group 2", "desc" : "this is another test group" } ] } ] } 

Si je l’parsing dans jQuery pour retourner un object et que je parcours les applications de la manière suivante:

 $.each(myJsonObject.Apps, function() { ... }; 

Comment puis-je obtenir la longueur de this.groups ?

J’ai essayé

  • this.groups.length
  • this.groups.length ()
  • $ (this) .groups.length ()

et je ne trouve aucune documentation décente sur les objects json à plusieurs niveaux qui contiennent de bonnes informations.

Tous les liens, exemples ou suggestions seraient appréciés.

Essayer:

 $.each(myJsonObject.Apps, function(i, obj) { ... }); obj.Groups.length; 

Javascript est sensible à la casse. Modifiez this.Groups.length en this.groups.length .

Ce code devrait fonctionner:

 $.each(myJsonObject.Apps, function() { alert(this.groups.length); }); 

J’ai un exemple de travail sur JSFiddle

Pour éviter ce genre de problème, vous devez utiliser une capitalisation cohérente. En Javascript, l’utilisation de camelCase est classique.

cela fonctionne bien:

HTML:

  

JS:

 var myJsonObject = { "Apps" : [ { "Name" : "app1", "id" : "1", "groups" : [ { "id" : "1", "name" : "test group 1", "desc" : "this is a test group" }, { "id" : "2", "name" : "test group 2", "desc" : "this is another test group" } ] } ] }; $.each(myJsonObject.Apps, function(i, el) { $("#result").html(el.groups.length); }); 

Exemple

On dirait que vous avez juste une faute de frappe dans votre code. JavaScript étant sensible à la casse, les groups ne sont pas identiques aux Groups .

Si votre object JSON contient des groups en minuscules, comme dans votre exemple, vous devez uniquement utiliser this.groups.length dans la fonction d’itération.

Essayez ceci: function objectCount (obj) {

 objectcount = 0; $.each(obj, function(index, item) { objectcount = objectcount + item.length; }); return objectcount; } objectCount(obj); 

où obj est un object json avec un tableau json comme sous-objects

Essaye ça

 import org.json.JSONObject; JSONObject myJsonObject = new JSONObject(yourJson); int length = myJsonObject.getJSONArray("groups").length();