Reputation: 2001
I'm trying for now to get only the "dados" > "nome" and its "contatos"> "nome" but the way I'm parsing I'm getting the following results:
07-25 16:58:38.637 1041-1041/com.javatechig.feedreader I/System.out﹕ ClientesContatosModel{id=0, nome='Bill Gates', telefone=[], email=[]}
07-25 16:58:38.637 1041-1041/com.javatechig.feedreader I/System.out﹕ ClientesContatosModel{id=0, nome='Linus Torvalds', telefone=[], email=[]}
07-25 16:58:38.637 1041-1041/com.javatechig.feedreader I/System.out﹕ ClientesContatosModel{id=0, nome='Bill Gates', telefone=[], email=[]}
07-25 16:58:38.637 1041-1041/com.javatechig.feedreader I/System.out﹕ ClientesContatosModel{id=0, nome='Linus Torvalds', telefone=[], email=[]}
07-25 16:58:38.637 1041-1041/com.javatechig.feedreader I/System.out﹕ ClientesContatosModel{id=0, nome='Bill Gates', telefone=[], email=[]}
07-25 16:58:38.637 1041-1041/com.javatechig.feedreader I/System.out﹕ ClientesContatosModel{id=0, nome='Linus Torvalds', telefone=[], email=[]}
07-25 16:58:38.637 1041-1041/com.javatechig.feedreader I/System.out﹕ ClientesContatosModel{id=0, nome='Steve Jobs', telefone=[], email=[]}
The "contatos" names is repeating until the last name "Steve Jobs". Why is it doing that, and How can I solve it?
Here is my complete Json:
{
"total": 4,
"dados": [
{
"id": "9",
"id_rm_empresa": "2",
"id_rm_tipo_cliente": "1",
"tipo_pessoa": "PJ",
"cpf": null,
"nome": "Microsoft",
"cnpj": null,
"ie": null,
"suframa": null,
"ramo_de_atividade": null,
"ano_de_fundacao": null,
"informacoes_adicionais": "informação do clientes",
"enderecos": [
{
"id_rm_endereco": "1",
"endereco": "Rua Rudolph Diesel",
"numero": "174",
"complemento": "",
"bairro": "Industrial",
"cep": "86063-330",
"cidade": "Londrina",
"estado": "Paraná",
"tipo_endereco": "Residencial"
}
],
"contatos": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_empresa": "2",
"nome": "Bill Gates",
"cargo": "Diretor",
"telefones": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_telefone": "4",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"numero": "(22) 2222-2222",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
},
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_telefone": "9",
"id_rm_empresa": "2",
"tipo": "Celular",
"numero": "(44) 4444-4444",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"emails": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_email": "5",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"email": "[email protected]",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
},
{
"id_rm_cliente": "10",
"id_rm_contato": "7",
"id_rm_empresa": "2",
"nome": "Linus Torvalds",
"cargo": "Diretor",
"telefones": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_telefone": "4",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"numero": "(22) 2222-2222",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"emails": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_email": "5",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"email": "[email protected]",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"telefones": [
{
"id_rm_empresa": "2",
"id_rm_cliente": "10",
"id_rm_telefone": "1",
"numero": "(43)3025-1355",
"tipo": "Casa",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
},
{
"id_rm_empresa": "2",
"id_rm_cliente": "10",
"id_rm_telefone": "2",
"numero": "(43)3000-6562",
"tipo": "Trabalho",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"emails": [],
"criado": "2013-09-01 07:00:00",
"modificado": "2012-09-04 18:30:34",
"status": "A"
},
{
"id": "8",
"id_rm_empresa": "2",
"id_rm_tipo_cliente": "1",
"tipo_pessoa": "PJ",
"cpf": null,
"nome": "Linux",
"cnpj": null,
"ie": null,
"suframa": null,
"ramo_de_atividade": null,
"ano_de_fundacao": null,
"informacoes_adicionais": "informação do clientes",
"enderecos": [
{
"id_rm_endereco": "1",
"endereco": "Rua Rudolph Diesel",
"numero": "174",
"complemento": "",
"bairro": "Industrial",
"cep": "86063-330",
"cidade": "Londrina",
"estado": "Paraná",
"tipo_endereco": "Residencial"
}
],
"contatos": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_empresa": "2",
"nome": "Bill Gates",
"cargo": "Diretor",
"telefones": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_telefone": "4",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"numero": "(22) 2222-2222",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
},
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_telefone": "9",
"id_rm_empresa": "2",
"tipo": "Celular",
"numero": "(44) 4444-4444",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"emails": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_email": "5",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"email": "[email protected]",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
},
{
"id_rm_cliente": "10",
"id_rm_contato": "7",
"id_rm_empresa": "2",
"nome": "Linus Torvalds",
"cargo": "Diretor",
"telefones": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_telefone": "4",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"numero": "(22) 2222-2222",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"emails": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_email": "5",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"email": "[email protected]",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"telefones": [
{
"id_rm_empresa": "2",
"id_rm_cliente": "10",
"id_rm_telefone": "1",
"numero": "(43)3025-1355",
"tipo": "Casa",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
},
{
"id_rm_empresa": "2",
"id_rm_cliente": "10",
"id_rm_telefone": "2",
"numero": "(43)3000-6562",
"tipo": "Trabalho",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"emails": [],
"criado": "2013-09-01 07:00:00",
"modificado": "2012-09-04 18:30:34",
"status": "A"
},
{
"id": "19",
"id_rm_empresa": "2",
"id_rm_tipo_cliente": "1",
"tipo_pessoa": "PJ",
"cpf": null,
"nome": "Apple",
"cnpj": null,
"ie": null,
"suframa": null,
"ramo_de_atividade": null,
"ano_de_fundacao": null,
"informacoes_adicionais": "informação do clientes",
"enderecos": [
{
"id_rm_endereco": "1",
"endereco": "Rua Rudolph Diesel",
"numero": "174",
"complemento": "",
"bairro": "Industrial",
"cep": "86063-330",
"cidade": "Londrina",
"estado": "Paraná",
"tipo_endereco": "Residencial"
}
],
"contatos": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_empresa": "2",
"nome": "Bill Gates",
"cargo": "Diretor",
"telefones": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_telefone": "4",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"numero": "(22) 2222-2222",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
},
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_telefone": "9",
"id_rm_empresa": "2",
"tipo": "Celular",
"numero": "(44) 4444-4444",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"emails": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_email": "5",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"email": "[email protected]",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
},
{
"id_rm_cliente": "10",
"id_rm_contato": "7",
"id_rm_empresa": "2",
"nome": "Linus Torvalds",
"cargo": "Diretor",
"telefones": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_telefone": "4",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"numero": "(22) 2222-2222",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"emails": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_email": "5",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"email": "[email protected]",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"telefones": [
{
"id_rm_empresa": "2",
"id_rm_cliente": "10",
"id_rm_telefone": "1",
"numero": "(43)3025-1355",
"tipo": "Casa",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
},
{
"id_rm_empresa": "2",
"id_rm_cliente": "10",
"id_rm_telefone": "2",
"numero": "(43)3000-6562",
"tipo": "Trabalho",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"emails": [],
"criado": "2013-09-01 07:00:00",
"modificado": "2012-09-04 18:30:34",
"status": "A"
},
{
"id": "10",
"id_rm_empresa": "2",
"id_rm_tipo_cliente": "1",
"tipo_pessoa": "PJ",
"cpf": null,
"nome": "Webee",
"cnpj": null,
"ie": null,
"suframa": null,
"ramo_de_atividade": null,
"ano_de_fundacao": null,
"informacoes_adicionais": "informação do clientes",
"enderecos": [
{
"id_rm_endereco": "1",
"endereco": "Rua Rudolph Diesel",
"numero": "174",
"complemento": "",
"bairro": "Industrial",
"cep": "86063-330",
"cidade": "Londrina",
"estado": "Paraná",
"tipo_endereco": "Residencial"
}
],
"contatos": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_empresa": "2",
"nome": "Steve Jobs",
"cargo": "Diretor",
"telefones": {
"total": 1,
"dados": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_telefone": "4",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"numero": "(22) 2222-2222",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
]
},
"emails": {
"total": 1,
"dados": [
{
"id_rm_cliente": "10",
"id_rm_contato": "1",
"id_rm_email": "5",
"id_rm_empresa": "2",
"tipo": "Trabalho",
"email": "[email protected]",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
]
},
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"telefones": [
{
"id_rm_empresa": "2",
"id_rm_cliente": "10",
"id_rm_telefone": "1",
"numero": "(43)3025-1355",
"tipo": "Casa",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
},
{
"id_rm_empresa": "2",
"id_rm_cliente": "10",
"id_rm_telefone": "2",
"numero": "(43)3000-6562",
"tipo": "Trabalho",
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
],
"emails": [],
"criado": "2013-09-01 07:00:00",
"modificado": "2013-09-03 18:30:30",
"status": "A"
}
]
}
Here is what I tried so far:
contatoList = new ArrayList<ClientesContatosModel>();
JSONArray dados = json.getJSONArray("dados");
feedList = new ArrayList<ClientesModel>();
// parsing json object
for (int i = 0; i < dados.length(); i++) {
JSONObject item = dados.getJSONObject(i);
ClientesModel mClientesModel = new ClientesModel();
/* cadastra os dados necessários no objeto no modelo */
mClientesModel.setNome(item.optString("nome"));
mClientesModel.setTipo_pessoa(item.optString("tipo_pessoa"));
mClientesModel.setInformacoes_adicionais(item.optString("informacoes_adicionais"));
mClientesModel.setCpf(item.optString("cpf"));
mClientesModel.setCnpj(item.optString("cnpj"));
JSONArray contatos = item.getJSONArray("contatos");
for (int j = 0; j < contatos.length(); j++) {
ClientesContatosModel mClientesContatoModel = new ClientesContatosModel();
JSONObject data = contatos.getJSONObject(j);
mClientesContatoModel.setNome(data.optString("nome"));
mClientesContatoModel.setCargo(data.optString("cargo"));
contatoList.add(mClientesContatoModel);
}
feedList.add(mClientesModel);
System.out.println(contatoList);
}
Upvotes: 0
Views: 71
Reputation: 2678
This line of code:
ClientesContatosModel mClientesContatoModel = new ClientesContatosModel();
should be inside the FOR it belongs to.
for (int j = 0; j < contatos.length(); j++) {
// HERE
ClientesContatosModel mClientesContatoModel = new ClientesContatosModel();
JSONObject data = contatos.getJSONObject(j);
mClientesContatoModel.setNome(data.optString("nome"));
mClientesContatoModel.setCargo(data.optString("cargo"));
}
Upvotes: 1
Reputation: 14847
Move
ClientesContatosModel mClientesContatoModel = new ClientesContatosModel();
and
contatoList.add(mClientesContatoModel);
inside
for (int j = 0; j < contatos.length(); j++) {
example:
for (int j = 0; j < contatos.length(); j++) {
ClientesContatosModel mClientesContatoModel = new ClientesContatosModel();
contatoList.add(mClientesContatoModel);
Upvotes: 1