Tengo una secuencia de comandos que me gustaría reutilizar para diferentes proyectos en los que llamo a API similares, pero el objeto JSON que recibo puede ser un poco diferente. Entonces, cuando analizo los datos, me gustaría tener control sobre a qué valores accedo.
Para esta API en particular, lo siguiente funciona:
var contractData = theParsedJSONdata.data.items; En el futuro, los data las claves y los items pueden variar. ¿Puedo usar variables para acceder al objeto?
Intenté esto, pero no funcionó:
let objectString = ".data.items"; var contractData = theParsedJSONdata + objectString;Datos de ejemplo:
{ data: { address: '0x000000000222221111111111', updated_at: '2022-02-03T00:30:12.793596926Z', next_update_at: '2022-02-03T00:35:12.793597076Z', quote_currency: 'USD', chain_id: 137, items: [ [Object], [Object], [Object],Puede usar variables como claves de objeto con esta notación:
key1 = "data"; key2 = "items"; obj[key1][key2] // equivalent to obj.data.itemsUsa una función.
let objectAccessor = obj => obj.data.items; let contractData = objectAccessor(theParsedJSONdata); Más tarde puede reasignar objectAccessor :
objectAccessor = obj => obj.something.thing;