Busca em Json

33 views
Skip to first unread message

Luiz Gustavo Mafra

unread,
Nov 17, 2016, 8:34:44 PM11/17/16
to androidb...@googlegroups.com
Boa noite pessoal,

Eu tenho um JSon que possui dois Arrays musicas e avaliações, onde musicas eu vou ter os diversos titulos de musicas e avaliações a avaliação de cada titulo musical com o id da musica avaliada.

Meu problema é o seguinte, o JsonArray de avaliações é muito grande e se eu fizer a comparação de cada musica com suas avaliações por loop demora bastante.

Sendo assim, gostaria de saber se tem como eu fazer uma espécie de "select" no json de avaliação utilizando como parâmetro o id da musica. É possível fazer isso?

Att,

--
Luiz Gustavo S. Mafra
Bacharel em Ciência da Computação - UESC - Universidade Estadual de Santa Cruz
Analista de Sistemas - Santa Casa de Misericórdia de Itabuna
Desenvolvedor PHP, Android

+55 73 9147 0547
+55 73 8888 7500

twitter: @lgmafra
skype: lgmafra

Maicon Strey

unread,
Nov 17, 2016, 8:54:00 PM11/17/16
to androidb...@googlegroups.com
acho mais produtivo pensar na possibilidade de criar um método separado só para as avaliações. dai tu passa o id da musica e vem só as avaliações daquela musica solicitada. 

é melhor separar em metodos menores do que fazer tudo num só. Além de consumir menos dados do usuário consome menos bateria.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Luiz Gustavo Mafra

unread,
Nov 17, 2016, 9:10:33 PM11/17/16
to androidb...@googlegroups.com
Ai que está o problema...esse JSon eu não tenho como mexer, a URL que tenho vai me trazer tudo e ai eu terei que filtrar no App.

To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

pedrofsn

unread,
Nov 18, 2016, 6:42:45 AM11/18/16
to Android Brasil - Dev
Bom dia,

"tem como eu fazer uma espécie de "select" no json", não tem como.
Minha sugestão é que você persista estes dados no banco de dados (nem que seja temporariamente) e realize suas consultas da forma desejada.
Ou, se for possível, modifique o JSON retornado pra que a estrutura de dados venha mais elaborada, ex.:

[
{ "id":"123",
  "musica":"Negro Drama",
  "avaliacoes":[
  {"nome" : "Pablo", "comentario":"Não chorei."},
  {"nome" : "Israel Novaes", "comentario":"Não curti."}
   ]}, 
...
]

Desta forma cada música já vem com suas respectivas avaliações, assim você corta o for das avaliações, tendo que fazer apenas o das músicas.

Att.
@pedrofsn

Luiz Gustavo Mafra

unread,
Nov 18, 2016, 6:52:32 AM11/18/16
to androidb...@googlegroups.com
Bom dia Pedro,

Acho que vou fazer essa persistência no banco mesmo para facilitar minha vida...hehehe
Valeu.

Att,

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Lucas de Almeida Marciano

unread,
Nov 18, 2016, 12:03:41 PM11/18/16
to Android Brasil - Dev
Opa!
Amigo, no seu caso, eu faria um web service, que leria esse json e mandaria para minha app ela já mastigada, assim, você iria diminuir muito o processamento da sua app.
Trabalhar com json é muito leve na web, então não seria um tempo enorme para processar esse json na web.

Se for o caso, sincronize com uma base local, assim você não vai precisar ficar se conectando para mecher nesses dados.

Luiz Gustavo Mafra

unread,
Nov 18, 2016, 7:27:57 PM11/18/16
to androidb...@googlegroups.com
Fala Lucas,

A questão é que esse Json já está pronto...o que estou fazendo na verdade é um teste, então não tenho como mudar o WS.
Estava tentando fazer esse processo inserindo os dados no BD como o Pedro sugeriu, mas como o volume de dados é muito grande, acaba travando o App, a progressDialog trava até que o processo termine.
Alguem teria alguma outra ideia?

Att,

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

pedrofsn

unread,
Nov 19, 2016, 9:03:39 PM11/19/16
to Android Brasil - Dev
Se o ProgressDialog está travando é porque você provavelmente está processando os dados na UI Thread, se for o caso utilize uma asynctask. 
Ou realmente são muitos dados e o seu callback está pipocando na UI Thread rsrs. Neste caso sugiro pensar em algum delay ou generalizar um pouco "ex.: "processando dados" ao invés de "processando música abc" ".

Agora uma outra alternativa seria você criar um WS só pra processar os dados e mastigar para a sua aplicação, como o Lucas sugeriu.
Mas neste caso seria o seguinte, o seu WS iria ler o WS atual. Sacou? Vai colocar uma API pra consumir/tratar a outra. Ao invés de processar no app. Este caso é interessante porque você pode pensar até em controles de cache mais refinados - afinal, o WS vai ser seu :P.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Luiz Gustavo Mafra

unread,
Nov 19, 2016, 9:24:47 PM11/19/16
to androidb...@googlegroups.com
Então Pedro, esses dados eu estou processando no AsyncTask, porém o volume é muito grande...um parte do JSon tem mais de 20 mil dados e outro tem mais de 4 mil.
A ideia de manipular o WS seria interessante, porém, esse app é um desafio que me foi passado e ai não tenho como mexer no WS, somente posso trabalhar com os dados como me foi fornecido.

To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

pedrofsn

unread,
Nov 20, 2016, 3:13:24 PM11/20/16
to Android Brasil - Dev
Então... é tanto processamento que nem é coisa de asynctask então. Utilize IntentService e só avise o usuário quando terminar. 

Sobre o WS, seria o seguinte. Você não vai mexer neste WS você vai fazer um novo que vai consumir os dados do WS atual. Neste seu "novo WS", você vai mastigar os dados antes de enviar para os dispotivios, assim facilitando o processamento nos mesmos.

Luiz Gustavo Mafra

unread,
Nov 20, 2016, 8:31:55 PM11/20/16
to androidb...@googlegroups.com
Boa noite pessoal,

Então Bruno, consumir o WS não está sendo problema não...o app faz o download rápido, o problema era somente no momento de montar as telas.
Essa opção da thread seria uma opção para utilizar.

Pedro, essa ideia do service acho que também será uma boa, ao iniciar o app chamaria o service e após concluir, notificar o usuário.

Apesar que eu já perdi o envio do teste que foi até ontem, eu vou testar essas alternativas, afinal conhecimento nunca é demais...hehehe

Valeu a ajuda.

To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Lucas de Almeida Marciano

unread,
Nov 21, 2016, 5:40:13 AM11/21/16
to androidb...@googlegroups.com
Tu pode procurar um modo de dividir esse json, baixar uma parte e depois a outra.
Tu também pode estudar o Recicle View que carrega os dados em bloco, ou seja, quando ele for descendo a rolagem ele carrega mais o json.
Se você estiver usando uma lista para mostrar os dados.

You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/UVkljW_yjY0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
Lucas de A. Marciano
Desenvolvedor Android Sênior
Telefone: (84) 99117-2604

Luiz Gustavo Mafra

unread,
Nov 21, 2016, 6:10:41 AM11/21/16
to androidb...@googlegroups.com
O recyclerview já tem esse comportamento por padrão Lucas?
Ir carregando os dados aos poucos será uma ideia interessante também.

To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Luiz Gustavo S. Mafra
Bacharel em Ciência da Computação - UESC - Universidade Estadual de Santa Cruz
Desenvolvedor PHP, Android


twitter: @lgmafra
skype: lgmafra

--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/UVkljW_yjY0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
Lucas de A. Marciano
Desenvolvedor Android Sênior
Telefone: (84) 99117-2604

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Lucas de Almeida Marciano

unread,
Nov 21, 2016, 8:00:39 AM11/21/16
to androidb...@googlegroups.com
Rapaz, eu não tenho certeza, mas eu creio que não. O listview não tem esse comportamento, tem que ser implementação usando o async task, mas o recicle view ja tem "tudo pronto", tipo tem lá, mas tem que programar para ele ativar essa função. Enfim, de uma pesquisada ae, é sua melhor saída e a melhor forma o google indica isso e tudo.


You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/UVkljW_yjY0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
Lucas de A. Marciano
Desenvolvedor Android Sênior
Telefone: (84) 99117-2604

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Luiz Gustavo S. Mafra
Bacharel em Ciência da Computação - UESC - Universidade Estadual de Santa Cruz
Analista de Sistemas - Santa Casa de Misericórdia de Itabuna
Desenvolvedor PHP, Android


twitter: @lgmafra
skype: lgmafra

--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/UVkljW_yjY0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--

Luiz Gustavo Mafra

unread,
Nov 21, 2016, 1:41:53 PM11/21/16
to androidb...@googlegroups.com
Blz, vou dar uma estudada sobre o reclycler...valeu ae Lucas

Em 21 de novembro de 2016 10:00, Lucas de Almeida Marciano <lucas.almei...@gmail.com> escreveu:
Rapaz, eu não tenho certeza, mas eu creio que não. O listview não tem esse comportamento, tem que ser implementação usando o async task, mas o recicle view ja tem "tudo pronto", tipo tem lá, mas tem que programar para ele ativar essa função. Enfim, de uma pesquisada ae, é sua melhor saída e a melhor forma o google indica isso e tudo.

Em seg, 21 de nov de 2016 às 08:10, Luiz Gustavo Mafra <lgm...@gmail.com> escreveu:
O recyclerview já tem esse comportamento por padrão Lucas?
Ir carregando os dados aos poucos será uma ideia interessante também.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Luiz Gustavo S. Mafra
Bacharel em Ciência da Computação - UESC - Universidade Estadual de Santa Cruz
Desenvolvedor PHP, Android


twitter: @lgmafra
skype: lgmafra

--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/UVkljW_yjY0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
Lucas de A. Marciano
Desenvolvedor Android Sênior
Telefone: (84) 99117-2604

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Luiz Gustavo S. Mafra
Bacharel em Ciência da Computação - UESC - Universidade Estadual de Santa Cruz
Analista de Sistemas - Santa Casa de Misericórdia de Itabuna
Desenvolvedor PHP, Android


twitter: @lgmafra
skype: lgmafra

--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/UVkljW_yjY0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
Lucas de A. Marciano
Desenvolvedor Android Sênior
Telefone: (84) 99117-2604

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Lucas de Almeida Marciano

unread,
Nov 21, 2016, 9:35:14 PM11/21/16
to androidb...@googlegroups.com
Precisando

Em seg, 21 de nov de 2016 às 15:41, Luiz Gustavo Mafra <lgm...@gmail.com> escreveu:
Blz, vou dar uma estudada sobre o reclycler...valeu ae Lucas
Em 21 de novembro de 2016 10:00, Lucas de Almeida Marciano <lucas.almei...@gmail.com> escreveu:
Rapaz, eu não tenho certeza, mas eu creio que não. O listview não tem esse comportamento, tem que ser implementação usando o async task, mas o recicle view ja tem "tudo pronto", tipo tem lá, mas tem que programar para ele ativar essa função. Enfim, de uma pesquisada ae, é sua melhor saída e a melhor forma o google indica isso e tudo.

Em seg, 21 de nov de 2016 às 08:10, Luiz Gustavo Mafra <lgm...@gmail.com> escreveu:
O recyclerview já tem esse comportamento por padrão Lucas?
Ir carregando os dados aos poucos será uma ideia interessante também.
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/UVkljW_yjY0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
Lucas de A. Marciano
Desenvolvedor Android Sênior
Telefone: (84) 99117-2604

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Luiz Gustavo S. Mafra
Bacharel em Ciência da Computação - UESC - Universidade Estadual de Santa Cruz
Analista de Sistemas - Santa Casa de Misericórdia de Itabuna
Desenvolvedor PHP, Android


twitter: @lgmafra
skype: lgmafra

--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/UVkljW_yjY0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
Lucas de A. Marciano
Desenvolvedor Android Sênior
Telefone: (84) 99117-2604

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Luiz Gustavo S. Mafra
Bacharel em Ciência da Computação - UESC - Universidade Estadual de Santa Cruz
Analista de Sistemas - Santa Casa de Misericórdia de Itabuna
Desenvolvedor PHP, Android


twitter: @lgmafra
skype: lgmafra

--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/UVkljW_yjY0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
Reply all
Reply to author
Forward
0 new messages