voici mon problème, je ne peux pas obtenir la valeur de la paire de clés dynamique de la Dynamic JSON Ci-dessous mon JSON
Object.keys(d).forEach(function(key){
var value = d[key];
console.log(key + ':' + value) ;
});
4 Réponses :
C'est à cause du p>
+ code> avant la valeur code> code>, qui tentera de concaténer la valeur et que vous verrez [objet d'objet] 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) {
let value = d[key];
console.log(key + ' : ', value);
console.log(key + ' : ', value.desc.id);
});
Comment puis-je obtenir les valeurs "_id" et "file_id"?
ok supposons que si nous ne savons pas si nous allons le nom "Desc" ou tout autre nom peut être là
Ici, le nom de la clé sera dynamique et cela change à chaque fois "Pexels-Photo.jpeg"
Vous devez vérifier si la valeur est objet ou non, si oui, vous devez en faire la boucle à nouveau.
Le code suivant imprimera chaque paire de valeur de clé dans d p > 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);
}
});
}
}
p> var d = {
"pexels-photo.jpeg": {
"information": "laptop",
"desc": {
"mimetype": "image/jpeg",
"id": "shsj44",
"file_id": "pexels-photo.jpeg"
},
"_id": "shsj44"
}
};
Object.keys(d).filter(key => {
Object.keys(d[key]).filter(item => {
if (item === 'desc') {
Object.keys(d[key][item]).filter(elem => {
if ((elem === 'id') || (elem === 'file_id')) {
console.log(elem + ' : ' + d[key][item][elem]);
}
});
}
})
});