Avalados por :

Como converter um payload JSON para o formato desejado usando Groovy e SAP Gateway IP Core

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 6 Vistas
0
Cargando...

Olá Experts,

Eu tenho um payload JSON no seguinte formato...

{
    "root": {
    "teams": [
    {
    "VisitFrequencyPerYear": "0",
    "UPI": "422511",
    "complete": "false"
    },
    {
    "VisitFrequencyPerYear": "0",
    "UPI": "421802",
    "complete": "false"
    }
    ]
    }
    }
    

Mas eu preciso no seguinte formato:

 [
            {
            "VisitFrequencyPerYear": "0",
            "UPI": "422511",
            "complete": "false"
            },
            {
            "VisitFrequencyPerYear": "0",
            "UPI": "421802",
            "complete": "false"
            }
     ]
    

Para conseguir isso, estou usando o seguinte script Groovy:

import com.sap.gateway.ip.core.customdev.util.Message;
    import java.util.HashMap;

    def Message processData(Message message) {

        def body = message.getBody();
        body = body.substring(body.indexOf('\n')+19);

        def json_to_str=body.substring(1,body.length()-3);  
        message.setBody(json_to_str);

        return message;
    }

    

Mas estou recebendo mensagens de erro como:

Erro na linha: 7
    ***
    org.codehaus.groovy    
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...
{
        "root": [{
            "teams": [
                {
                    "VisitFrequencyPerYear": "0",
                    "UPI": "422511",
                    "complete": "false"
                },
                {
                    "VisitFrequencyPerYear": "0",
                    "UPI": "421802",
                    "complete": "false"
                }
            ]
        } ]} 

Por que este código não funciona para dois conjuntos de dados em um array? Por favor, ajude.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Obrigado a ambos yoganandamuthaiah e sriprasadshivaramabhat .

Agradeço sinceramente a ajuda de vocês.

Cumprimentos,

Anirban

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Anirban,

Adicionar à resposta de Yoga abaixo seria o necessário, eu suponho.

importar com.sap.gateway.ip.core.customdev.util.Mensagem
importar groovy.json.JsonBuilder
importar groovy.json.JsonSlurper

def Mensagem processarDados(Mensagem mensagem) {
def json = mensagem.getCuerpo(java.lang.String)
def jsonSlurper = novo JsonSlurper()
def objeto = jsonSlurper.parseText(json)
 
def constructor = novo JsonBuilder()
constructor  objeto.raiz.equipos.cada { 
     elemento -> se(elemento.completo == 'falso'){
             elemento.eliminar('completo')
            } 
    }
mensagem.setCuerpo(constructor.toPrettyString())
retorno mensagem;
}

Saudações,

Sriprasad Shivaram Bhat

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?