Fiz umas funções e ordenei de uma maneira que parece servir ao seu projeto
Function choiceIterator
Verifica se é Array ou Json, caso seja itera, caso for outra coisa ele apenas printa. Observe que coloquei um catch para casos de null, ou casos não previstos.
function choiceIterator(item, value_key="") {
try {
if (item.constructor == Object) iteraJson(item, value_key)
else if (item.constructor == Array) iteraArray(item, value_key)
else console.log(value_key, ': ', item)
}
catch {
console.log(value_key, ': error' )
}
}```
Itera Json
Uma função simples para iterar caso seja Json
function iteraJson (item, value_key) {
let keys = Object.keys(item)
console.log(' ------>>>> Iterando Json: ', value_key)
keys.map( (value_key) => {
choiceIterator(item[value_key], value_key)
})
}
iteraArray
Uma função simples para iterar array
function iteraArray(item, value_key) {
console.log(' ------>>>> Iterando Array: ', value_key)
item.map(item_iterado => {
choiceIterator(item_iterado, value_key)
})
}
Obs:
Essa maneira de iterar é recursiva dependendo da quantidade de dados, ou da sua aplicação pode ser um pouco pesado. Para aplicações simples não parece gerar um desempenho ruim.
Alternativa a isso é você conhecer bem os dados que vai trabalhar ai você escolhe o que iterar e o que não iterar.
Função para testar
Criei um file.js e gerei o código para testar e deu certo:
function rodar(){
data.result.map( item => {
choiceIterator(item, 'data.result')
})
}
Output gerado com os dados do post Princial:
------>>>> Iterando Json: data.result
team_key : 96
team_name : Juventus
team_logo : https://apiv2.allsportsapi.com/logo/96_juventus.jpg
------>>>> Iterando Array: players
------>>>> Iterando Json: players
player_key : 3063582184
player_name : F. Israel
player_number : 45
player_country : error
player_type : Goalkeepers
player_age : 21
player_match_played : 0
player_goals : 0
player_yellow_cards : 0
player_red_cards : 0
player_image : https://apiv2.allsportsapi.com/logo/players/79274_f-israel.jpg
------>>>> Iterando Json: players
player_key : 41841276
player_name : M. Perin
player_number :
player_country : error
player_type : Goalkeepers
player_age :
player_match_played :
player_goals :
player_yellow_cards :
player_red_cards :
player_image : https://apiv2.allsportsapi.com/logo/players/472_m-perin.jpg
É isso espero ter ajudado!
Caso precise de mais algo posta ai.