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
            [Login] => hecthorne@hotmail.com
            [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: 1700
    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ódigopublic 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ódigopublic 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: 1700
    19 ago 2015

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

Fazer um replace pra tirar os colchetes:

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

Obrigado!

Adriano Cordeiro
|
MVP
Pontos: 1700
    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/