Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou tentando ler utilizando C# um JSON (URL) e ler as informações que estão nele.
Algum exemplo de como fazer o Deserialize e pegar tal informação?
@itlpps ajustei aqui está 99% funcionado... o único problema é que quando o JSON não traz resultado.
Montei um try / catch e dá erro dentro do catch.
Veja o código:
public void FazerLogin(string cnpj, string email)
{
Demo_Innerlibs.Bling response = AJAX.GET<Demo_Innerlibs.Bling>("https://xxxx.com.br/Api/v2/contato/"+ cnpj +"/json&apikey=xxxxx");
try
{
//CNPJ OU CPF LOCALIZADO NO XXXXX
//comparar os emails (digitado vs bling) para fazer login
if (email == response.retorno.contatos[0].contato.email)
{
//email autenticado, criando sessões
Session["nome"] = response.retorno.contatos[0].contato.nome;
Session["limiteCredito"] = response.retorno.contatos[0].contato.limiteCredito;
Session["situacao"] = response.retorno.contatos[0].contato.situacao;
Session["cnpj"] = cnpj;
Response.Redirect("/default.aspx");
}
else
{
//e-mails não conferem
Response.Redirect("/login.aspx?erro=2");
Response.End();
}
}
catch (Exception)
{
throw;
}
}
Dá o seguinte erro: *Referência de objeto não definida para uma instância de um objeto. (na linha do **throw**)*Entendi.
Faz uma verificação.
if(response == null || response.retorno == null)
{
//o que acontece quando não tiver dados.
}
Faz um tratamento no catch também. Retorne uma mensagem amigável, ou faz outra coisa.
Enquanto estava escrevendo esse comentário, me surgiu um dúvida ao fazer a verificação..
Se response for null, não preciso testar response.retorno (óbvio).
https://stackoverflow.com/questions/35301/what-is-the-difference-between-the-and-or-operators
@itlpps não funcionou o seu if... ele sempre retorna que há dados, mesmo quando não tem.
E qualquer coisa que eu tento fazer dentro do catch, dá erro e não faz.
Coloca um break point, vê o que tem dentro das variáveis, e vê qual está null, ai você testa ela;
Você ta consumindo uma API que retorna um JSON?
https://stackoverflow.com/questions/4749639/deserializing-json-to-net-object-using-newtonsoft-or-linq-to-json-maybe
Use Newtonsoft.