即使这看起来似乎可以通过简单的google搜索轻松找到,但遗憾的是它不能。 这是我的问题:我在服务器上有一个JSON对象,正在获取它,我想计算该对象中有多少个属性。
我尝试过:var count = Object.keys(object).length;
,但它仅计算那里有多少个对象。
我也尝试过:
var array = [];
for (let prop in res) {
array.push(res[prop]);
}
我将打印整个对象console.log(array)
,但是我只需要一些属性。
这是我的JSON对象:
{
"results":[
{
"title":"Document 1",
"content":"some content of document here",
"fillable_fields":{
"field1":"",
"field2":"",
"field3":""
},
"picture":{
"medium":"https://randomuser.me/api/portraits/med/men/42.jpg"
}
},
{
"title":"Document 2",
"content":"some content of document2 here",
"fillable_fields":{
"field1":"",
"field2":"",
"field3":""
},
"picture":{
"medium":"https://randomuser.me/api/portraits/med/men/42.jpg"
}
}
]
}
答案 0 :(得分:0)
为了访问fillable_fields
数组,您需要遍历对象的属性。由于results
是一个数组,因此可以通过使用索引0
获取此数组中的第一个对象。您要访问此数组中的第一个对象,因为它是fillable_fields
数组所在的位置。
一旦检索到索引0的对象,就可以进一步使用dot notation访问contract
对象,然后访问fillable_fields
数组。
最后,您可以使用.length
属性获取数组中的项目数。
使用所有这些,您将获得以下访问器:
object.results[0].contract.fillable_fields.length
请参见下面的工作示例:
const object={results:[{contract:{fillable_fields:["field1","field2","field3"],title:"Contract test",sub:"You can always follow the progress of your application by logging on the the application portal."},picture:{medium:"https://www.healthcaredenmark.dk/media/11272/bridgeit_logo.png"}}]};
console.log(object.results[0].contract.fillable_fields.length);
编辑:
根据您的修改,您可以使用.reduce()
遍历results
数组,然后将destructuring assignment与Object.keys
一起使用以获取每个{ {1}}个对象:
fillable_fields