Cómo get el número de matrices en un object JSON

A continuación está mi JSON. Quiero get el número y el nombre de la (s) matriz (es) en este object. Esto se crea dinámicamente así que no sé sobre su número y nombre (s). Aquí hay 2 matrices en este ejemplo, denominadas Tabla y Tabla1.

"{ "Table": [ { "Day": "Jan", "Counts": 20, "SrNo": 1, "Title": "test2", "ProfilePic": "/Image1.jpg" }, { "Day": "Feb", "Counts": 10, "SrNo": 2, "Title": "test2", "ProfilePic": "/Image1.jpg" } ], "Table1": [ { "Day": "01", "Counts": 5, "SrNo": 1, "Title": "test3", "ProfilePic": "/Image2.jpg" }, { "Day": "02", "Counts": 9, "SrNo": 2, "Title": "test3", "ProfilePic": "/Image2.jpg", } ] }" 

Pruebe el código mencionado a continuación,

 Object.keys(jsonObject).length; 

Consulte también …: ¿ Obtiene el número total de elementos en el object Json?

Para get todos los nombres:

 var keys = Object.keys(jsonObject); // this will return root level title ["Table" , "Table1"] 

Suponiendo que cada propiedad en el object contiene una matriz, solo puede contar el número de properties usando Object.keys , como este:

 var arrayCount = Object.keys(obj).length; 

Alternativamente, si realmente desea determinar el tipo de la propiedad, en caso de que existan otros types en el object, tendrá que recorrer y verificar cada propiedad individualmente, lo que podría hacerse usando filter() esta manera:

 var obj = { "Table": [{ "Day": "Jan", "Counts": 20, "SrNo": 1, "Title": "test2", "ProfilePic": "/Image1.jpg" }, { "Day": "Feb", "Counts": 10, "SrNo": 2, "Title": "test2", "ProfilePic": "/Image1.jpg" } ], "Table1": [{ "Day": "01", "Counts": 5, "SrNo": 1, "Title": "test3", "ProfilePic": "/Image2.jpg" }, { "Day": "02", "Counts": 9, "SrNo": 2, "Title": "test3", "ProfilePic": "/Image2.jpg", } ], 'NotArray1': 'foo', // < not an array 'isArray': false // < not an array } var arrayCount = Object.keys(obj).filter(function(key) { return obj[key].constructor === Array; }).length; console.log(arrayCount); 

Puede usar Array.prototype.networkinguce () para devolver el total de todos los valores de properties del object que son matrices válidas:

 var obj = { "Table": [{ "Day": "Jan", "Counts": 20, "SrNo": 1, "Title": "test2", "ProfilePic": "/Image1.jpg" }, { "Day": "Feb", "Counts": 10, "SrNo": 2, "Title": "test2", "ProfilePic": "/Image1.jpg" }], "Table1": [{ "Day": "01", "Counts": 5, "SrNo": 1, "Title": "test3", "ProfilePic": "/Image2.jpg" }, { "Day": "02", "Counts": 9, "SrNo": 2, "Title": "test3", "ProfilePic": "/Image2.jpg" } ], "Table2": false }, arrayCount = Object.keys(obj).networkinguce(function (acc, val) { return Array.isArray(obj[val]) ? ++acc : acc; }, 0); console.log(arrayCount);