Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 529133
            [titulo] => Como desserealizar um objeto em mvc enviado por Json ?
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-08-19 08:30:46
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 315365
            [status] => A
            [isExample] => 
            [NomeUsuario] => Hector Figueroa
            [Apelido] => 
            [Foto] => Sem título-38.jpg
            [Conteudo] => 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; ) )

Como desserealizar um objeto em mvc enviado por Json ?

Adriano Cordeiro
|
MVP
Pontos: 200
    18 ago 2015

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:
#Código

[[{"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:
#Código
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:
#Código
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!

Post mais votado

Hector Figueroa
   - 19 ago 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;

Randrade
   - 19 ago 2015

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

Adriano Cordeiro
|
MVP
Pontos: 200
    19 ago 2015

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

Fazer um replace pra tirar os colchetes:

#Código

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


Obrigado!

Adriano Cordeiro
|
MVP
Pontos: 200
    19 ago 2015

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

Obrigado!

Hector Figueroa
   - 19 ago 2015

Blza! que bom! \o/