¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo convertir un payload JSON al formato deseado usando Groovy y SAP Gateway IP Core

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

Hello Experts,

Tengo un payload JSON en el siguiente formato...

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

Pero lo necesito en el siguiente formato:

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

Para lograr esto, estoy usando el siguiente script de 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;
    }

    

Pero estoy recibiendo mensajes de error como:

Error at line: 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 qué este código no funciona para dos conjuntos de datos en un array? Por favor ayuda.

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

Gracias a ambos yoganandamuthaiah y sriprasadshivaramabhat .

Realmente aprecio su ayuda.

Saludos,

Anirban

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

Hola Anirban,

Agregar a la respuesta de Yoga abajo haría lo necesario, supongo.

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

def Mensaje procesarDatos(Mensaje mensaje) {
def json = mensaje.getCuerpo(java.lang.String)
def jsonSlurper = nuevo JsonSlurper()
def objeto = jsonSlurper.parseText(json)
 
def constructor = nuevo JsonBuilder()
constructor  objeto.raíz.equipos.cada { 
     elemento -> si(elemento.completo == 'falso'){
             elemento.eliminar('completo')
            } 
    }
mensaje.setCuerpo(constructor.toPrettyString())
retorno mensaje;
}

Saludos,

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?