json - inserindo objeto dentro de objeto

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)
compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags json ou faça a sua própria pergunta.