Javascript 如何访问嵌套对象
我想访问嵌套的Json文件,但不知道如何访问:Javascript 如何访问嵌套对象,javascript,json,Javascript,Json,我想访问嵌套的Json文件,但不知道如何访问: var createPromise = new Promise(function (resolve, reject) { ddpclient.call('create_emailConnection',[ddpclient.collections.email], function (err, result) { console.log([ddpclient.collections.email])
var createPromise = new Promise(function (resolve, reject) {
ddpclient.call('create_emailConnection',[ddpclient.collections.email], function (err, result) {
console.log([ddpclient.collections.email])
resolve();
if (err) {
logger.error(0, '❌ error user_created')
} else {
logger.debug(5, 'users marked as created')
}
})
})
本报税表
email.json
{ HEDGz2aafs2UdSvT3S:
{ _id: 'HEDGz2aafs2UdSvT3S',
batch: '2017-user-created-by-websocket',
creationIP: 'None',
creationDate: 2018-06-14T13:23:58.786Z,
state: [Object],
},
M101KSi360g7cER8D5:
{ _id: 'M101KSi360g7cER8D5',
batch: '2017-box-created-by-websocket',
creationIP: 'None',
creationDate: 2018-06-14T13:24:31.145Z,
state: [Object],
} }
因此,我想在我的json文件上获取_id,因为对象键
HEDGz2aafs2UdSvT3S
,M101KSi360g7cER8D5
看起来是随机的和不可预测的,所以您可以在数组对象上使用object.keys()
,并通过它们循环获取_id
的值
var arr=[{HEDGz2aafs2UdSvT3S:
{u id:'HEDGz2aafs2UdSvT3S',
批次:“由websocket创建的2017用户”,
creationIP:“无”,
创作日期:“2018-06-14T13:23:58.786Z”
},
M101KSi360g7cER8D5:
{u id:'M101KSi360g7cER8D5',
批次:“由websocket创建的2017框”,
creationIP:“无”,
创作日期:“2018-06-14T13:24:31.145Z”
} } ];
arr.forEach((obj)=>{
键=对象。键(obj);
key.forEach((key)=>{
console.log(obj[key]。\u id);
});
});代码>使用可以使用和
您有一个数组
的对象
,每个对象
都有多个对象
,每个对象都映射到\u id
对象的键。现在,您可以减少数组以连接所有\u id
。由于对象的键
和\u id
相同,您可以使用对象的键来提取\u id
var arr=[{HEDGz2aafs2UdSvT3S:{u id:'HEDGz2aafs2UdSvT3S',batch:'2017年用户由websocket创建',creationIP:'None',creationDate:'2018-06-14T13:23:58.786Z'},M101KSi360g7cER8D5:{u id:'M101KSi360g7cER8D5',batch:'2017年用户由websocket创建,creationIP:'None',,creationDate:'2018-06-14T13:24:31.145Z'}];
让ids=arr.reduce((a,c)=>[…a,…Object.keys(c)],[]);
控制台日志(ids)代码>请尝试以下操作:
a.map(x => Object.keys(x).map(y => x[y]._id))
它将返回一个属性数组\u id
FIDLE:旁注:不要解决错误承诺,这会隐藏发生错误的事实。错误拒绝,这就是承诺拒绝的目的。我确实让ids=ddpclient.collections.email.reduce((a,c)=>[…a,…Object.keys(c)],[]);日志(ids)它告诉我reduce不是function@EyTa-上面的email.json是否存储在ddpclient.collections.email
中?这是对数据库的调用我的json是这样的抱歉不是数组我会马上修改我的问题var arr={HEDGz2aafs2UdSvT3S:{u id:'HEDGz2aafs2UdSvT3S',batch:'2017用户由websocket创建,'creationIP:'None',creationDate:'2018-06-14T13:23:58.786Z'},M101KSi360g7cER8D5:{u id:'M101KSi360g7cER8D5',batch:'2017框由websocket创建,'creationIP:'None',creationDate:'2018-06-14T13:24:31.145Z'}@EyTa-查看我的最新答案。您只需要对象键