Javascript 如何从动态密钥对值中获取数据
这里我的问题是,我无法从动态json获取动态密钥对值 下面是我的jsonJavascript 如何从动态密钥对值中获取数据,javascript,json,angular,typescript,Javascript,Json,Angular,Typescript,这里我的问题是,我无法从动态json获取动态密钥对值 下面是我的json var d = { "pexels-photo.jpeg": { "information": "laptop", "desc": { "mimetype": "image/jpeg", "id": "shsj44", "file_id": "pexels-photo.jpeg" },
var d = {
"pexels-photo.jpeg": {
"information": "laptop",
"desc": {
"mimetype": "image/jpeg",
"id": "shsj44",
"file_id": "pexels-photo.jpeg"
},
"_id": "shsj44"
}
}
我在下面试过了
Object.keys(d).forEach(function(key){
var value = d[key];
console.log(key + ':' + value) ;
});
我想获得id值“\u id”和“file\u id”值,这是因为
值之前有+
,它将尝试连接该值,您将看到[object]
var d={
“pexels photo.jpeg”:{
“信息”:“笔记本电脑”,
“描述”:{
“mimetype”:“图像/jpeg”,
“id”:“shsj44”,
文件id:“pexels photo.jpeg”
},
_id:“shsj44”
}
}
Object.keys(d).forEach(函数(键){
设值=d[key];
log(键+':',值);
log(key+':',value.desc.id);
});代码>这是因为+
在值之前有一个+
,它将尝试连接该值,您将看到[object]
var d={
“pexels photo.jpeg”:{
“信息”:“笔记本电脑”,
“描述”:{
“mimetype”:“图像/jpeg”,
“id”:“shsj44”,
文件id:“pexels photo.jpeg”
},
_id:“shsj44”
}
}
Object.keys(d).forEach(函数(键){
设值=d[key];
log(键+':',值);
log(key+':',value.desc.id);
});代码>您可以使用
var d={“dynamic”:{“information”:“laptop”,“desc”:{“mimetype”:“image/jpeg”,“id”:“shsj44”,“file_id”:“pexels photo.jpeg”},“_id”:“shsj44”}
设dynamicKey=Object.keys(d)[0]
设{[dynamicKey]:{desc:{
文件标识
},_id}}=d
console.log(文件\u id,'\n',\u id)
您可以使用
var d={“dynamic”:{“information”:“laptop”,“desc”:{“mimetype”:“image/jpeg”,“id”:“shsj44”,“file_id”:“pexels photo.jpeg”},“_id”:“shsj44”}
设dynamicKey=Object.keys(d)[0]
设{[dynamicKey]:{desc:{
文件标识
},_id}}=d
console.log(文件\u id,'\n',\u id)
您需要检查该值是否为object,如果是,则需要再次循环
以下代码将打印d
export class AppComponent implements OnInit {
d = {
'pexels-photo.jpeg': {
'information': 'laptop',
'desc': {
'mimetype': 'image/jpeg',
'id': 'shsj44',
'file_id': 'pexels-photo.jpeg'
},
'_id': 'shsj44'
}
};
ngOnInit(): void {
this.calc(this.d);
}
calc(val) {
Object.keys(val).forEach(key => {
const value = val[key];
if (typeof (value) === 'object') {
this.calc(value);
} else {
console.log(key + ':' + value);
}
});
}
}
您需要检查该值是否为object,如果是,则需要再次循环该值
以下代码将打印d
export class AppComponent implements OnInit {
d = {
'pexels-photo.jpeg': {
'information': 'laptop',
'desc': {
'mimetype': 'image/jpeg',
'id': 'shsj44',
'file_id': 'pexels-photo.jpeg'
},
'_id': 'shsj44'
}
};
ngOnInit(): void {
this.calc(this.d);
}
calc(val) {
Object.keys(val).forEach(key => {
const value = val[key];
if (typeof (value) === 'object') {
this.calc(value);
} else {
console.log(key + ':' + value);
}
});
}
}
试试这个:
var d={
“pexels photo.jpeg”:{
“信息”:“笔记本电脑”,
“描述”:{
“mimetype”:“图像/jpeg”,
“id”:“shsj44”,
文件id:“pexels photo.jpeg”
},
_id:“shsj44”
}
};
Object.keys(d).filter(key=>{
Object.key(d[key]).filter(项=>{
如果(项目=='desc'){
Object.key(d[key][item]).filter(elem=>{
if((elem=='id')| |(elem=='file_id')){
console.log(elem+':'+d[key][item][elem]);
}
});
}
})
});代码>试试这个:
var d={
“pexels photo.jpeg”:{
“信息”:“笔记本电脑”,
“描述”:{
“mimetype”:“图像/jpeg”,
“id”:“shsj44”,
文件id:“pexels photo.jpeg”
},
_id:“shsj44”
}
};
Object.keys(d).filter(key=>{
Object.key(d[key]).filter(项=>{
如果(项目=='desc'){
Object.key(d[key][item]).filter(elem=>{
if((elem=='id')| |(elem=='file_id')){
console.log(elem+':'+d[key][item][elem]);
}
});
}
})
});代码>这里的密钥名称将是动态的,每次“pexels photo.jpeg”都会更改。这里的密钥名称将是动态的,每次“pexels photo.jpeg”都会更改。我如何获取“\u id”和“file\u id”值?好的,假设我们不知道名称“desc”或任何其他名称是否可以存在,我如何获取“\u id”和“file\u id”值?好吧,假设我们不知道名称“desc”或任何其他名称是否存在