Necesito recoger el valor de un objeto API devuelto, la jerarquía es así
{"name": {"common":"Germany", "official":"Federal Republic of Germany", "nativeName": {"deu": {"official":"Bundesrepublik Deutschland", "common":"Deutschland"}}}, "currencies": {"EUR": {"name":"Euro", "symbol":"€"}}Quiero recoger "Deutschland", así que escribo como name.nativeName.deu.common , pero el problema es por cada entrada de usuario diferente, el nombre del país cambia cada vez, y "deu" y "EUR" también serán diferentes , en este ejemplo, ¿es esa una forma en que puedo elegir el valor "común" en "nombre nativo" y "nombre" en "monedas", sin pasar por sus padres "deu" y "EUR"?
Parece que la API puede devolver una respuesta con varias claves tanto en nativeName como en las currencies , por lo que aquí hay un ejemplo que devuelve todos los valores como una matriz.
const apiResponse = { "name": { "common": "Germany", "official": "Federal Republic of Germany", "nativeName": { "deu": { "official": "Bundesrepublik Deutschland", "common": "Deutschland" } } }, "currencies": { "EUR": { "name": "Euro", "symbol": "€" } } } const nativeNames = Object.keys(apiResponse.name.nativeName).map(key => { return apiResponse.name.nativeName[key].common; }); const currencies = Object.keys(apiResponse.currencies).map(key => { return apiResponse.currencies[key].name; }); console.log(nativeNames); console.log(currencies);