Olá! Estou precisando inserir objeto dentro de objeto, tentei varias situações mas sem sucesso. O json parcial que eu preciso está abaixo.
{
"remetenteId": 0,
"cnpj": 0,
"remessaCodigo": "string",
"encomendas": [
{
"servicoTipo": 0,
"servicoTipoInfo": "string",
"entregaTipo": 0,
"peso": 0,
"volumes": 0,
"condFrete": "string",
"pedido": "string",
"clienteCodigo": "string",
"natureza": "string",
"volumesTipo": "string",
"icmsIsencao": 0,
"coletaInfo": "string",
"campanha": "string",
"destinatario": {
"nome": "string",
"cpfCnpj": "string",
"ie": "string",
"endereco": {
"logradouro": "string",
"numero": "string",
"complemento": "string",
"pontoReferencia": "string",
"bairro": "string",
"cidade": "string",
"estado": "string",
"pais": "string",
"cep": 0 },
"email": "string",
"telefone1": 0,
"telefone2": 0,
"telefone3": 0
},
"cod": {
"formaPagamento": "string",
"parcelas": 0,
"valor": 0 },
"agendamento": {
"data": "string",
"periodo1": "string",
"periodo2": "string"
}
}
]
}
Eu consegui inserir os dados basicos e o array "encomendas", mas, "destinatario" dentro de encomendas nao consegui, e, ainda tem "endereco" dentro de "destinatario".
oJson := JSonObject():New()
oJson["remetenteId"] := 99999 // N,5 - ID do Remetente - D U V I D A
oJson["cnpj"] := rtrim(SM0->M0_CGC) // C,14 - CNPJ do Remetente
oJson["remessaCodigo"] := nil // C,20 - Opcional - Código de identificação da remessa pelo cliente
// na estrutrua do json cria uma lista [ ] com objeto dentro { }
aJson := {}
Aadd(aJson,JsonObject():new()) // grupo de dados Encomendas
aJson[1]['servicoTipo'] := 1 // N,1 - Serviço Contratado - =====>>>>>> P E G A R DO SA4 depois
aJson[1]['servicoTipoInfo'] := nil // C,14 - Opcional - Serviço Contratado
aJson[1]['entregaTipo'] := 0 // N,1 - Tipo de Entrega - 0 = Entrega Normal (padrão) / 1 = GoBack / 2 = RMA
aJson[1]["peso"] := nil // N,3,2 - Opcional - Peso da encomenda
aJson[1]["volumes"] := (cAlias)->C5_VOLUME1 // N,2 - Quantidade de volumes
aJson[1]["condFrete"] := "CIF" // C,3 - Condição de frete - Preencher com CIF, pois a Total Express não trabalha com a modalidade FOB
aJson[1]["pedido"] := (cAlias)->D2_PEDIDO // C,20 - Código do pedido
aJson[1]["clienteCodigo"] := nil // C,20 - Opcional - Código fornecido pelo cliente para identificar a encomenda
aJson[1]["natureza"] := "Utilidades domesticas e decoracao" // C,25 - Natureza da Mercadoria - Informar a descrição do produto predominante. Item exigido para emissão do CTe (vide campo 279 do Manual de Integração Contribuinte - Versão 1.0.4a de - 12/08/11)
aJson[1]["volumesTipo"] := "CX" // C,3 - Tipo de Volumes
aJson[1]["icmsIsencao"] := 0 //N,1 - Indica mercadoria isenta de ICMS - 0 = não / 1 = sim =====>>>>>> P E G A R D A QUERY
aJson[1]["coletaInfo"] := "Utilidades domesticas e decoracao" // C,255 - Descrição do material a ser coletado
aJson[1]["campanha"] := nil // C,10 - Nome da Campanha - Descrição da campanha. O acompanhamento de campanhas é um produto adicional que deve ser contratado.
oJson["encomendas"] := JSonObject():New()
oJson["encomendas"] := aJson
FreeObj(aJson)