Ler dados retornados por Json

Boa tarde pessoal!
Preciso de uma ajuda urgente

Estou tentando pegar os dados retornados de um link de uma API, porém a função nunca retorna nada pra mim.
Podem me ajudar por gentileza ?

Segue abaixo minha função.

<script>

	 var ultimo_btc = 0;
	 var volume_btc = 0;
 
 function PegarTicker_X() {
	 $.getJSON('https://www.mercadobitcoin.net/api/ticker/', 
	   function(data){
		 
		 ultimo_btc	= data.ticker.last;

	   });
	      	   
  };
    
   

function PegarTicker_Y() {
  $.getJSON("https://www.mercadobitcoin.net/api/ticker/", function(data){
     $.each(data, function( ticker, last ){
          ultimo_btc = last;    
     });	 

  });

};

</script>

Nenhuma das duas funções estão me retornando valor nenhum, nem funcionam.
Podem me ajudar ?

Acessem o link direto pelo Browse que vcs verão o resultado.
https://www.mercadobitcoin.net/api/ticker/

Abra o console do navegador e veja qual é o retorno da requisição. Criar um callback para tratamento de exceções pode ajudar também.

Este é o conteúdo retornado no navegador:
{“ticker”:{“high”:1689.00051000,“low”:1633.00003000,“vol”:30.00260772,“last”:1688.98000000,“buy”:1675.00000000,“sell”:1688.98000000,“date”:1455478097}}

Porém, não consigo ler esses dados nem com PHP, nem JQuery, nem com JavaScript.

Tudo que faço da erro.

Pode me ajudar com isso ?
Grato!

Tente isso:

function PegarTicker_Y() {
     $.getJSON("https://www.mercadobitcoin.net/api/ticker/", function(data){
      ultimo_btc = data.last;         
  });
};

Infelizmente todas as tentativas só retornam vazio!
Muito estranho.

Já tentei com Json pelo jQuery e pelo PHP.
E nada

Cara, desculpa, acho que comi bola. Ao invés de data.last use data.ticker.last.

Observe lá em cima na função PegarTicker_X(),
Já estou utilizando isso aí e não roda.

Olha!
Será que está faltando eu incluir algum arquivo .js que eu não estou incluindo ?

Estou carregando esses dois arquivos.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>

Tem algum a mais que eu deva incluir para funcionar ?
Será que falta algum ?

function PegarTicker_Y() { $.getJSON("https://www.mercadobitcoin.net/api/ticker/", function(data){ ultimo_btc = data.ticker; }); };

Isso era pra funcionar, o que você quer fazer com esse ultimo_btc ?

Qual a mensagem de erro ?

O mais difícil você já fez, que é receber o Json.

Se o seu console exibiu isso:

{“ticker”:{“high”:1689.00051000,“low”:1633.00003000,“vol”:30.00260772,“last”:1688.98000000,“buy”:1675.00000000,“sell”:1688.98000000,“date”:1455478097}}

Então a requisição foi realizada com sucesso. E como o usuário acima falou, o método PegarTicker_Y deveria funcionar.

Eu preciso pegar esses valores retornados em:
high - low - vol - last - buy - sell

Se você acessar o link https://www.mercadobitcoin.net/api/ticker/, você vai ver que ele está retornando o valor.
ultimo_btc é apenas uma variável que estaria armazenando o valor obtido.

Mas o que acho estranho é que não aparece nada.
Se você der um alert(data.ticker.high); ou um alert com qualquer um índice aí que tem um valor ele não funciona.

Se você tentar armazenar em alguma variável fica em banco como se tivesse um erro.
Mas não aparece nenhuma mensagem de erro?

Existe algum comando que eu possa colocar aí para gerar uma mensagem pra saber se está dando erro ?

Está faltando algum .JS além desses dois que eu já incluí ?

Faz assim, receba na sua variável ultimo_btc assim:

ultimo_btc = data;

Depois use assim:

ultimo_btc.ticker.last

OU

ultimo_btc[0].ticker.last

Testa ae…

Nada!
Muito estranho veja como está o código.

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sem título</title>

<script src="jscript/jquery.js"></script>
<script src="jscript/jquery-1.11.1.min.js"></script>
<script src="jscript/jquery-ui.js"></script>
<script src="jscript/ajax.js"></script>

<script>

function PegarTicker_Y() {
     $.getJSON("https://www.mercadobitcoin.net/api/ticker/", function(data){
      ultimo_btc = data;
      return ultimo_btc.ticker.last;

//se usar assim também não funciona: return ultimo_btc[0].ticker.last;
});

}

</script>


</head>

<body>

<script>

  alert(PegarTicker_Y());

</script>

</body>
</html>

Agora acesse o link e veja o resultado
http://www.essencialweb.com.br/testes/json_bitcoin.html

Muito estranho

Ok, ainda recebendo ultimo_btc = data, depois disso faça assim:

console.log(ultimo_btc); e poste aqui a saída do console.

Agora que prestei atenção, seu erro é uma besteira:

function PegarTicker_Y() { return $.getJSON("https://www.mercadobitcoin.net/api/ticker/", function(data){ ultimo_btc = data; return ultimo_btc.ticker.last; });

Falta o return $.getJSON, logo no início né fio.

Com essa função;

function PegarTicker_Y() {
           return $.getJSON("https://www.mercadobitcoin.net/api/ticker/", function(data){
           ultimo_btc = data;
           return ultimo_btc.ticker.last;
           });
};

Está retornando isso => [object Object]

Então agora ta certo, agora só debugar o seu object Object e corrigir para trazer a variável que você quer.

Uma dica é sempre ir usando console.log para ver a composição do objeto.

Qualquer coisa posta o console.log(ultimo_btc.ticker) ou console.log(ultimo_btc).

Eu te aconselho a fazer assim:

function PegarTicker_Y() { var retorno = null; $.getJSON("https://www.mercadobitcoin.net/api/ticker/", function(data){ ultimo_btc = data; retorno = ultimo_btc.ticker.last; }); return retorno; };

Está retornando Null

function PegarTicker_Y() { return $.getJSON("https://www.mercadobitcoin.net/api/ticker/", function(data){ ultimo_btc = data; retorno = ultimo_btc.ticker.last; });};