Como desserealizar um objeto em mvc enviado por Json ?

18/08/2015

0

Boa noite!,
Estou fazendo uma tela de cadastro em MVC 5, quando o usuário clicar no botão Salvar o sistema vai enviar os dados via Json através da seguinte string serealizada:

[[{"TBFUNCIONARIOID":0,"NMFUNCIONARIO":"JOÃO","MATRICULA":"12312","DTADMISSAO":"01/01/2015","STATUS":false,"CPF":"13500305890"
,"TBEndereco":[
				{"TBENDERECOID":0,"TBFUNCIONARIOID":0,"LOGRADOURO":"Rua João da Silva ","NUMLOGRADOURO":""  ,"COMPLEMENTO":""      ,"BAIRRO":"Vila ABC"        ,"CEP":"08460348"}
			   ,{"TBENDERECOID":0,"TBFUNCIONARIOID":0,"LOGRADOURO":"Rua André Higino      ","NUMLOGRADOURO":"32","COMPLEMENTO":"apt 78","BAIRRO":"Jardim São Paulo","CEP":"08460"}
			   ,{"TBENDERECOID":0,"TBFUNCIONARIOID":0,"LOGRADOURO":"Rua Carlos de Siqueira","NUMLOGRADOURO":"70","COMPLEMENTO":"casa 3","BAIRRO":"Jardim Triana"   ,"CEP":"03554000"}
				]
}]]


O problema é que eu tenho que desserealizar e popular os dados nas duas models abaixo:

Model TBFuncionario:
public class TBFuncionario
    {
        public int TBFUNCIONARIOID { get; set; }
        public string MATRICULA { get; set; }
        [DisplayFormat(ApplyFormatInEditMode=true, DataFormatString="{0:dd/MM/yyyy}")]
        public DateTime? DTADMISSAO { get; set; }
        public string NMFUNCIONARIO { get; set; }
        public bool STATUS { get; set; }        
        public string CPF { get; set; }
        public virtual ICollection<TBEndereco> TBEndereco { get; set; }
    }


Model TBEndereco:

public class TBEndereco
    {
        [Key]
        public int TBENDERECOID { get; set; }
        
        public int TBFUNCIONARIOID { get; set; }
        public string LOGRADOURO { get; set; }
        public string NUMLOGRADOURO { get; set; }
        public string COMPLEMENTO { get; set; }
        public string BAIRRO { get; set; }
        public string CEP { get; set; }
        [ForeignKey("TBFUNCIONARIOID")]
        public virtual TBFuncionario TBFuncionario { get; set; }
    }


Obrigado!
Adriano Cordeiro

Adriano Cordeiro

Responder

Post mais votado

19/08/2015

Fala Adriano, eu uso no meu projeto que não e mvc, coloquei a referencia "Newtonsoft" no projeto e uso:

using Newtonsoft.Json;

e uso o JsonConvert.DeserializeObject(SeuObjeto) para deserializar;

Hector Figueroa

Hector Figueroa
Responder

Mais Posts

19/08/2015

Randrade

Como você irá enviar esses dados?
Através de forms, ajax, arquivo?
Responder

19/08/2015

Adriano Cordeiro

Bom dia!
Hector essa biblioteca funcionou ! eu só tive que fazer um ajuste:

Fazer um replace pra tirar os colchetes:

TBFuncionario model = JsonConvert.DeserializeObject<TBFuncionario>(pTBFuncionario.Replace("[[","").Replace("]]",""));


Obrigado!
Responder

19/08/2015

Adriano Cordeiro

Obrigado Randrade a solução indicado pelo Hector funcionou, ah! eu estou enviando via Ajax para uma View mvc 5.

Obrigado!
Responder

19/08/2015

Hector Figueroa

Blza! que bom! \o/
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar