Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Helio13

obter dados de get com retorno json

Mensagens Recomendadas

Helio13

Estou a fazer um get que me devolve este json

{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 3}, "objects": [{"GenreType": "Terror", "id": "515d63a88774a7191cc58276", "resource_uri": "/test/api/v1/Genre/515d63a88774a7191cc58276"}, {"GenreType": "Drama", "id": "515d63ab8774a7191cc58277", "resource_uri": "/test/api/v1/Genre/515d63ab8774a7191cc58277"}, {"GenreType": "Acc\u00e3o", "id": "515d63cb8774a7191cc58278", "resource_uri": "/test/api/v1/Genre/515d63cb8774a7191cc58278"}]}

E estou a tentar fazer isto, para obter os dados, mas não estou a conseguir

$scope.InsertMovie = function(){

var tmpgenres = $scope.genre.get()
var str = JSON.parse(tmpgenres);
alert(str.GenreType)
}

Mas não me dá nada...alguém me pode ajudar? O que estou a fazer mal?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Portanto... O que está dentro do 1º tag code é o conteúdo da variável tempgenres?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Helio13

Sim, exacto...


A questão é que num json que tenho numa textarea, se fizer assim:

var obj = JSON.parse(document.getElementById('json').value);
alert(obj[0].MovieTitle);

Ele mostra, o titulo do filmes, mas fazendo o mesmo para o de cima, ao json que retorna não dá...

Editado por brunoais
2x post junto

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Sim, exacto...

[...]

Não acredito.

Faz um alert usando essa variável (tempgenres) como parâmetro e confirma.

Eu já vi o erro, mas ele é tão trivial que acho melhor seres tu a perceber aonde erraste.

Já agora, se usares um site como o jsbeautifier para esse JSON, ele vai ajudar-te a perceber a asneira que estás a fazer.

Editado por brunoais

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Helio13

Se eu fizer um alert assim:

var tmpgenres = $scope.genre.get();
alert(tmpgenres);

Dá me: [object Object]

Continuo sem perceber o erro...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

usa um for... in

e tenta perceber o que é que tens aí.

Se não sabes o que é um for... in , então pesquisa na net. há muito disso e sobre quando usar e quando não usar.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Helio13

Bom dia...

Já consegui resolver o problema, mas o problema não estava no for, mas sim de isto ser assincrono.

Pois, eu na função estava a fazer um get e a querer mostrar os dados, e dava undefined, pois os dados ainda não tinham chegados todos da solicitação get.

Então tive que por a mostrar os dados apenas depois de terem chegado...assim:

var obj = $scope.genre.get(function(data){
var str = JSON.stringify(data);
for (var i = 0; i < data.objects.length; i++)
alert(data.objects[i].GenreType);
}, function(erro){
alert('grande erro');});

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.