Usuário com melhor resposta
Como serializar um objeto no formato JSON ?

Pergunta
-
Olá galera,
Estou tentando usar json na minha apliação da seguinte forma.
Na controller:
Function ObterJson(ByVal parametro as String) as ActionResult Dim pessoa As Pessoa = PessoaDAO.ObterPessoa(parametro) Return Json(pessoa) End Function
no meu script em JQuery:
$.ajax({ url : "/MyController/ObterJson", data: {parametro : 123}, dataType: "json", sucess: function(json){//meu codigo }, error: function(xhr, er){ alert(xhr.statusText); } //Internal Server Error 500 });
O que estou fazendo de errado ?
Como devo serializar o objeto Pessoa para Json?
obs:
O metodo jquery consegue passar os dados corretamente para a controler,
na hora de retornar o Json(pessoa) o degub não alerta nada
e quando a resposta chega sempre cai na function error com a seguinte mensagem: "Internal Server Error 500" (O que quer dizer isso se vi nehuma exception?).
Valeu galera.
Abraão Alves - Um eterno estudante
Respostas
-
Fala Abraão,Aparentemente o que você está fazendo está correto. Como você está tomando o erro 500, sugiro que dê uma olhada no Event Viewer, que com certeza haverá um log contendo o erro exato que ocasionou o erro 500.Uma outra coisa que você pode fazer é alterar o web.config para exibir os erros detalhados (<customErrors mode="Off" />) e chamar a url do método "ObterJson" diretamente no browser (algo como http://localhost:xxx/MyController/ObterJson?parametro=123) e ver o erro que vai ocorrer.
Forte abraço,
André Borges Medeiros
MCT, MCPD, MCTS
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Marcado como Resposta Abraão Alves quinta-feira, 18 de março de 2010 19:00
-
Fala Abraão.
Tem sim, com anonymous type :
Function ObterJson(ByVal parametro as String) as ActionResult
Dim pessoa As Pessoa = PessoaDAO.ObterPessoa(parametro)
Return Json(New With { .Id = pessoa.Id, .Nome = pessoa.Nome, .Endereco = pessoa.Endereco })
End Function
Forte abraço,
André Borges Medeiros
MCT, MCPD, MCTS
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Marcado como Resposta Abraão Alves quinta-feira, 18 de março de 2010 19:00
Todas as Respostas
-
Olá ,
Aqui eu tenho exemplo http://www.danielfonsecacastro.com.br/post/2009/06/30/Trabalhando-com-JSON-em-ASPNET-MVC.aspx
Abraços,
Daniel Fonseca Castro
www.danielfonsecacastro.com.br
-
Fala Abraão,Aparentemente o que você está fazendo está correto. Como você está tomando o erro 500, sugiro que dê uma olhada no Event Viewer, que com certeza haverá um log contendo o erro exato que ocasionou o erro 500.Uma outra coisa que você pode fazer é alterar o web.config para exibir os erros detalhados (<customErrors mode="Off" />) e chamar a url do método "ObterJson" diretamente no browser (algo como http://localhost:xxx/MyController/ObterJson?parametro=123) e ver o erro que vai ocorrer.
Forte abraço,
André Borges Medeiros
MCT, MCPD, MCTS
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Marcado como Resposta Abraão Alves quinta-feira, 18 de março de 2010 19:00
-
É isso mesmo André,
Parece que tem uma referencia circular em um dos meus relacionamentos com outros objetos e ele dá ____ na hora serializar.
Tem como eu montar um objeto do tipo JsonResult com apenas os campos que vou utilizar na View (no caso apenas 4 campos)?
Como faço isso ?
Há Daniel,
Show de bola seu site! A maioria das coisas legais que aprendi de MVC foi lá, parabens continui assim.
Abraão Alves - Um eterno estudante -
Fala Abraão.
Tem sim, com anonymous type :
Function ObterJson(ByVal parametro as String) as ActionResult
Dim pessoa As Pessoa = PessoaDAO.ObterPessoa(parametro)
Return Json(New With { .Id = pessoa.Id, .Nome = pessoa.Nome, .Endereco = pessoa.Endereco })
End Function
Forte abraço,
André Borges Medeiros
MCT, MCPD, MCTS
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Marcado como Resposta Abraão Alves quinta-feira, 18 de março de 2010 19:00