System.Web.Script.Serialization

Eu estou tentando deserializar o Json, abaixo

I'm trying to deserialize Json, below

{
"ctes": [
{
"cnpjTransportadora": "76080738013318",
"cnpjUnidade": "52202744000192",
"numero": 74512,
"cst": 0,
"notas": [
{
"valorNota": 3600,
"cnpjEmissorNota": "52202744000192",
"observacao": "Cobranca: Bancaria / Pedido: 1141173 / Vend: 184 / OC: 22313 - LOCAL DE ENTREGA: RUA SAO BENTO SN , BAIRRO BAU CUIABA MT CEP 78.008-120 FUNDOS DO HOSPITAL FEMINA. RECEBIMENTO DE SEG A SEX DAS 07:00 AS 11:30 E DAS 13:00 AS 17:00. / CONTRIBUINTE INSCRITO NO ESTADO DE MATO GROSSO PARA FINS EXCLUSIVOS DE RECOLHIMENTO DO ICMS, NOS TERMOS DAS ALINEAS C DOS INCISOS I E II DA CLAUSULA SEGUNDA DO CONVENIO ICMS 93/2015 - INSCRICAO ESTADUAL MATO GROSSO No 13.652.076-6 CADASTRO DESDE 07/10/2016;Valor aproximado Tributos Fed: R$ 606.24 - Est: R$ 648.00 - Mun: R$ 0.00 Fonte: IBPT;ICMS/Interestadual: VLR.ICMS INTER.UF/ORIG: 72.00 / VLR.ICMS INTER.UF/DEST: 288.00",
"itens": [
{
"valorFreteRealizado": 35.705,
"valorFreteCalculado": 35.705,
"codigo": "0168379",
"quantidade": 4
}
],
"chave": "35181152202744000192550010005622511522027440",
"valorFreteCalculadoNota": 142.82,
"cfop": 6108,
"tipoOperacaoXML": "SAIDA",
"tipoOperacao": "SAIDA",
"dataEmissao": "2018-11-08 16:22:00",
"valorProporcionalNota": 142.82,
"tipoDocumento": "NOTA_FISCAL",
"cnpjRemetente": "52202744000192",
"situacaoSefaz": 4,
"mensagemValidacao": "Não foi encontrado um certificado digital para a empresa NCH",
"cnpjDestinatario": "14920631000133",
"valorFreteRealizadoNota": 142.82,
"serie": "1",
"valorProporcionalICMS": 10,
"informacoesContribuinte": [
{
"Email_CC": "daiane.costa@femina.com.br"
}
],
"numeroNota": 562251
}
],
"linkRepositorio": "xml/cte/2019/01/578762/CTe EUCATUR Gar 471 No 074512 Serie 2.XML",
"oidPreConhecimento": 10777366334,
"nomeEmissor": "EUCATUR EMPRESA UNIAO CASCAVEL DE TRANSP E TUR LTD",
"dataEmissao": "2018-11-08 21:21:40",
"tipoConhecimento": 1,
"valorDocumento": 142.82,
"dataPrevisaoEntrega": "",
"mensagemValidacao": "Falha no schema XML",
"cnpjResponsavel": "52202744000192",
"centrosCustos": [],
"cnpjDestinatario": "14920631000133",
"modal": "ROD",
"codigoCEP": 74583285,
"pesoCubado": 21,
"valorAliquotaIcms": 7,
"cnpjEmissor": "76080738001654",
"chave": "35181176080738001654570020000745121018715939",
"volumes": 1,
"cfop": 6353,
"valorBaseIcms": 142.82,
"nomeDestinatario": "FEMINA PRESTADORA DE SERVICOS MEDICO HOSPITALAR LTDA",
"situacaoSefaz": 2,
"situacaoCTe": 0,
"valorIcms": 10,
"numeroProtocolo": "135181329148389",
"dataEntrega": "",
"serie": "2",
"quantidadeItens": 4,
"pesoBruto": 21,
"movimentos": [
{
"icms": false,
"codigo": "icms",
"observacao": "Alíquota utilizada de SP para MT: 7.0%, base: 132.82",
"valorCalculado": 10,
"valor": 0
},
{
"icms": true,
"codigo": "gris",
"observacao": "EUCATUR EMPRESA UNIAO CASCAVEL - 2018 [Percentual: 0.30% Valor fixo: 5.88]",
"valorCalculado": 10.8,
"valor": 0
},
{
"icms": true,
"codigo": "advalorem",
"observacao": "EUCATUR EMPRESA UNIAO CASCAVEL - 2018, De Ribeirão Preto para MT R1 [Percentual: 0.80%]",
"valorCalculado": 28.8,
"valor": 0
},
{
"icms": false,
"codigo": "total",
"valorCalculado": 142.82,
"valor": 0
},
{
"icms": true,
"codigo": "TAS",
"observacao": "EUCATUR EMPRESA UNIAO CASCAVEL - 2018 [Valor: 3.30]",
"valorCalculado": 3.3,
"valor": 0
},
{
"icms": true,
"codigo": "fretepeso",
"observacao": "EUCATUR EMPRESA UNIAO CASCAVEL - 2018, De Ribeirão Preto para MT R1 [Tipo: Kilo/Unidade, Mínimo: 84.2100]",
"valorCalculado": 84.21,
"valor": 0
},
{
"icms": true,
"codigo": "pedagio",
"observacao": "EUCATUR EMPRESA UNIAO CASCAVEL - 2018 [Tipo: Por Kg/Fração, Frações: 1, Mínimo: 5.71]",
"valorCalculado": 5.71,
"valor": 0
}
],
"cubagem": 0,
"tipoCTe": 0,
"ufDestino": "GO"
}
]
}

aqui chama a class para deserializar mas não esta funcionando acredito que fiz alguma coisa errada na class. Eu não sei como fazer definir quando existe uma matriz no Json.

here call the class to deserialize but it is not working I think I did something wrong in the class. I do not know how to do that when there is an array in Json.

set retServicosCte to JavaScriptSer::Deserialize[type classServicosCte](wRetJson)
move retServicosCte::cnpjTransportadora to lbnumeroDocumento::Text

class-id classServicosCte.
working-storage section.
01 cnpjTransportadora string property as "cnpjTransportadora".
01 cnpjUnidade string property as "cnpjUnidade".
01 numero string property as "numero".
01 cst string property as "cst".
01 valorNota string property as "valorNota".
01 cnpjEmissorNota string property as "cnpjEmissorNota".
01 observacao string property as "observacao".
01 valorFreteRealizado string property as "valorFreteRealizado".
01 valorFreteCalculado string property as "valorFreteCalculado".
01 codigo string property as "codigo".
01 quantidade string property as "quantidade".
01 chave string property as "chave".
01 valorFreteCalculadoNota string property as "valorFreteCalculadoNota".
01 cfop string property as "cfop".
01 tipoOperacaoXML string property as "tipoOperacaoXML".
01 tipoOperacao string property as "tipoOperacao".
01 dataEmissao string property as "dataEmissao".
01 valorProporcionalNota string property as "valorProporcionalNota".
01 tipoDocumento string property as "tipoDocumento".
01 cnpjRemetente string property as "cnpjRemetente".
01 situacaoSefaz string property as "situacaoSefaz".
01 cnpjDestinatario string property as "cnpjDestinatario".
01 valorFreteRealizadoNota string property as "valorFreteRealizadoNota".
01 serie string property as "serie".
01 numeroNota string property as "numeroNota".
01 linkRepositorio string property as "linkRepositorio".
01 oidPreConhecimento string property as "oidPreConhecimento".
01 nomeEmissor string property as "nomeEmissor".
01 dataEmissao string property as "dataEmissaox".
01 tipoConhecimento string property as "tipoConhecimento".
01 valorDocumento string property as "valorDocumento".
01 dataPrevisaoEntrega string property as "dataPrevisaoEntrega".
01 mensagemValidacao string property as "mensagemValidacao".
01 cnpjResponsavel string property as "cnpjResponsavel".
01 centrosCustos string property as "centrosCustos".
01 cnpjDestinatario string property as "cnpjDestinatariox".
01 modal string property as "modal".
01 codigoCEP string property as "codigoCEP".
01 pesoCubado string property as "pesoCubado".
01 cnpjEmissor string property as "cnpjEmissor".
01 chave string property as "chavex".
01 volumes string property as "volumes".
01 cfop string property as "cfopx".
01 nomeDestinatario string property as "nomeDestinatario".
01 situacaoSefaz string property as "situacaoSefazx".
01 situacaoCTe string property as "situacaoCTe".
01 valorIcms string property as "valorIcms".
01 numeroProtocolo string property as "numeroProtocolo".
01 dataEntrega string property as "dataEntrega".
01 serie string property as "seriex".
01 quantidadeItens string property as "quantidadeItens".
01 pesoBruto string property as "pesoBruto".
01 movimentos string property as "movimentos".
01 cubagem string property as "cubagem".
01 tipoCTe string property as "tipoCTe".
01 ufDestino string property as "ufDestino".
end class.

 

Já testei o Json e ele é válido então acredito que estou fazendo algo errado na Class deserialização 

I have already tested Json and it is valid so I believe I am doing something wrong in the deserialization class

Thank you for your help!

  • Verified Answer

    Fiz a conversão do Json para C# e depois consegui deserializar para Cobol, cada varíavel é colocada no seu par correspondente.

    *public class RootObject
    *{
    * public List<int> ctes { get; set; }
    *}

    class-id classRootObject.
    01 ctes list[type classCte] property as "ctes".
    end class.

    *public class Cte
    *{
    * public string cnpjTransportadora { get; set; }
    * public string cnpjUnidade { get; set; }
    * public int numero { get; set; }
    * public int cst { get; set; }

    class-id classCte.
    working-storage section.
    01 cnpjTransportadora string property as "cnpjTransportadora".
    01 cnpjUnidade string property as "cnpjUnidade".
    end class