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é
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();