Deserializar Json em Classe CSharp

02/11/2014

0

Bom Dia

Estou fazendo uma aplicação para o projeto de TCC, onde irei efetuar algumas comparações, entre XML e JSON, porém não estou conseguindo deserializar o Json para uma classe que criei com o mesmo formato dos dados, o XML deserializou normalmente sem problemas, quando passo pelo break point todos os campos ficam com o valor NULL.

Segue o aplicativo para quem quiser testar, e ajudar.

http://www.4shared.com/rar/E2qXQyQ9ce/Aplicativo_TCC.html?

public void InterpretarJson(string pCaminhoOrigem, string pCaminhoDestino, string pNomeArquivo)
        {
            string json = File.ReadAllText(pCaminhoOrigem + pNomeArquivo);
            //Vendas venda = JsonConvert.DeserializeObject<Vendas>(json);
            //var s = new JavaScriptSerializer();
            //Vendas venda = (Vendas)s.Deserialize<Vendas>(json);
            //Vendas venda = (Vendas)s.Deserialize(json, typeof(Vendas)); 
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(VendasJson));
            MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(json));
            VendasJson venda = (VendasJson)ser.ReadObject(stream);

            GravarArquivoInterpretadoJson(venda, pNomeArquivo, pCaminhoDestino);
        }


using System.Runtime.Serialization;

[DataContract]
public class VendasJson 
{
    
    [DataMember]
    public string Venda;
    
    [DataMember]
    public string Loja;

    [DataMember]
    public string Caixa;

    [DataMember]
    public string Movimento;

    [DataMember]
    public string Status;

    [DataMember]
    public string Vendedor;

    [DataMember]
    public string Operador;

    [DataMember]
    public string Ecf_Cupom;

    [DataMember]
    public string Prevenda;

    [DataMember]
    public VendasItensItem[] Itens;

    [DataMember]
    public VendasFinalizadorasFinalizadora[] Finalizadoras;
}

[DataContract]
public class VendasItensItemJson 
{

    [DataMember]
    public string Produto;

    [DataMember]
    public string Preco;

    [DataMember]
    public string Quantidade;

    [DataMember]
    public string Status;

    [DataMember]
    public string Desconto;

    [DataMember]
    public string Aliquota_Icms;
}

[DataContract]
public class VendasFinalizadorasFinalizadoraJson 
{

    [DataMember]
    public string Abertura;

    [DataMember]
    public string Tipo;

    [DataMember]
    public string Valor;

    [DataMember]
    public string Troco;
    
    [DataMember]
    public string Status;
}


JSON
{"Vendas":{"Venda":"118","Loja":"1","Caixa":"2","Movimento":"2014-01-22T00:00:00","Status":"A","Vendedor":"1","Operador":"1","Ecf_Cupom":"000094","Prevenda":"60","Itens":{"Item":{"Produto":"5","Preco":"12.04","Quantidade":"1.00","Status":"A","Desconto":"0.00","Aliquota_Icms":"0.00"}},"Finalizadoras":{"Finalizadora":{"Abertura":"81","Tipo":"1","Valor":"20.00","Troco":"7.96","Status":"A"}}}}

Lucas Ramos

Lucas Ramos

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