Bom dia prezados, tudo bem com vocês?
Minha dúvida é a seguinte: comecei agora com api's e estrou trabalhando em algumas rotas de integração entre Protheus e um outro sistema que adquirimos. Estamos trabalhando com JSON (primeira vez que utilizo também) e em uma delas, eu preciso que o objeto contenha um array de arrays. Por exemplo, preciso enviar as informações de produtos, e uma delas é uma lista das promoções que o mesmo está contido. Eu recebo um array com essas promoções e uso um laço para percorrê-lo, adicionando cada atributo nas respectivas chaves do Json.
Exemplo:
oJson["externalPromotion"] := Eval(bObject)
for nCont := 1 to len(cPol) step 1
oJson["externalPromotion"]["reference"] := cPol[nCont][2]
oJson["externalPromotion"]["discount"] := cPol[nCont[6]
oJson["externalPromotion"]["maxQuantity"] := cPol[nCont][5]
oJson["externalPromotion"]["minQuantity"] := cPol[nCont][4]
oJson["externalPromotion"]["startDate"] := cPol[nCont][7]
oJson["externalPromotion"]["expiresIn"] := cPol[nCont][8]
next
Ele está sobrescrevendo as informações, mas não sei como saltar para o próximo array dentro do objeto Json. No fim, fica como se fosse apenas uma promoção para o produto, mesmo havendo mais. Se houver alguma outra forma mais funcional de eu popular esse atributo do Json, fico grato também se compartilharem.
Desde já agradeço,
Gustavo Oliveira
Gustavo, tem algumas coisas que não entendi. O que é isso Eval(bObject)? O que isso retorna? A propriedade externalPromotion é um JSON ou um Array? cPol apesar de estar com a notação húngara de Character, é um Array? Eu não vi em momento algum um array de array, se entendi bem, a propriedade externalPromotion deveria ser um Array de JSON. Consegue por favor me explicar melhor, talvez também colocar qual o resultado final do JSON que você espera.
— Daniel Mendes 03 de Aug de 2022Boa tarde Daniel. Na verdade, esse array de array (ou array de listas, acho que está mais para isso) está na variável cPol. A propriedade externalPromotion pertence ao JSON, mas eu precisaria dela com várias listas, vamos dizer assim. Mas consegui fazer aqui, basicamente o que o amigo Everton sugeriu abaixo e deu certo. Simplesmente criei um outro objeto Json, atribui os valores do array que eu precisava e adicionei ao objeto principal. Agradeço a interação de qualquer forma.
— Gustavo Oliveira 03 de Aug de 2022