0
I am trying to generate a hashmap (String, List Exercises) from a json:
[
{
"grupo":"Joelho",
"nome":"joelho_1",
"habilitar":"1"
},
{
"grupo":"Joelho",
"nome":"joelho_2",
"habilitar":"1"
},
{
"grupo":"Ombro",
"nome":"ombro_1",
"habilitar":"1"
},
{
"grupo":"Tornozelo_Pe",
"nome":"tornozelo_pe_1",
"habilitar":"1"
},
{
"grupo":"Tornozelo_Pe",
"nome":"tornozelo_pe_2",
"habilitar":"0"
}
]
with the following code:
if (utiliza_exercicio.equals("1")) { //verifica se o grupo e exercicio estão habilitados para o paciente
if (grupos.isEmpty()) { //verifica se o a lista de grupos está vazio para adicionar sem checar repetições
Exercicios e = new Exercicios();
e.setExercicio(exercicio); //seta a String grupo para um objeto da classe Exercicios
grupos.add(grupo); // adiciona o objeto da classe Exericios para uma lista de objetos de Exercicios
exercicios.add(e);
} else {
if (grupos.contains(grupo)){ //verifica se o grupo já está contido na lista
Exercicios e = new Exercicios();
e.setExercicio(exercicio);
exercicios.add(e); //adiciona o exercicio à lista de objetos de exercícios
if (i == jsonArray.length()-1){ //ultimo exercicio
hash.put(grupos.get(posicaoGrupo),exercicios); //adiciona no hash
}
}
else{ // caso o grupo de exercicio nao existir, adiciona na lista de grupos.
hash.put(grupos.get(posicaoGrupo),exercicios); // inclui o grupo e seus exercicios no hashmap
posicaoGrupo = posicaoGrupo + 1; //marca a posicao na lista de grupos do novo grupo acrescentado
exercicios.clear(); //limpa a lista para armazenar os exercicios do novo grupo
Exercicios e = new Exercicios();
e.setExercicio(exercicio);
exercicios.add(e); //inicia o armazenamento dos exercicios do novo grupo
grupos.add(grupo); //adiciona o novo grupo à lista de grupos
}
}
}
else if (i == jsonArray.length()-1){ //ultimo do jsonObject que não será utilizado.
hash.put(grupos.get(posicaoGrupo),exercicios); //adiciona o ultimos exercicios capturados junto com seu grupo específico, caso haja
}
}
But exercises that are included in Hashmap are always overwritten, causing fields tornozelo_pe_1
and tornozelo_pe_2
are always listed for all groups. But the groups themselves are being captured correctly.
Since I don’t have a set number of exercises every time, I couldn’t create a function and add list by list for each exercise group. What can I do?
Oopss.. Only the ankle_pe_1 is listed since the ankle_pe_2 is disabled.
– Rodrigo Ferraz