es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Eliminar valores nulos del resultado JSON utilizando Jolt

¿Puede sugerirme una forma de eliminar el valor nulo del resultado JSON como se describe a continuación:

Entrada
json
{
"userId": "1",
"age": "20",
"desc1": "valor desc1",
"desc2": "valor desc2",
"desc3": "valor desc3",
"desc4": "valor desc4",
"desc5": "valor desc5",
"desc6": "valor desc6",
"desc7": "valor desc7"
}

Especificaciones
json
[
{
"operación": "shift",
"especificación": {
"desc4": "test4",
"desc5": "test5",
"desc6": "test6",
"desc1|desc2|desc3": {
"$": "additionalInformationList[#2].typeCode",
"@": "additionalInformationList[#2].value"
}
}
}
]

Resultado

json
{
"test4": "valor desc4",
"test5": "valor desc5",
"test6": "valor desc6",
"additionalInformationList": [null,null,null,
{
"typeCode": "desc1",
"value": "valor desc1"
},
{
"typeCode": "desc2",
"value": "valor desc2"
},
{
"typeCode": "desc3",
"value": "valor desc3"
}
]
}

¿Alguna sugerencia sobre cómo eliminar los valores nulos por favor?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una forma de eliminar los valores nulos del resultado json es utilizar la función “default” dentro de la especificación de la transformación Jolt.

    Aquí tienes un ejemplo de especificación de transformación que incluye la función “default” para eliminar los valores nulos:

    [
      {
        "operation": "shift",
        "spec": {
          "desc4": "test4",
          "desc5": "test5",
          "desc6": "test6",
          "desc1|desc2|desc3": {
            "$": "additionalInformationList[#2].typeCode",
            "@": "additionalInformationList[#2].value",
            // Eliminar los valores nulos de additionalInformationList
            "*": {
              "@(1,"* == null")": {
                // Establecer el valor por defecto como cadena vacía
                "#": ""
              }
            }
          }
        }
      }
    ]
    

    En esta especificación, añadimos una clave “*” a la especificación “desc1|desc2|desc3”. Esta clave selecciona todos los elementos dentro de “desc1|desc2|desc3”, y la siguiente transformación se aplica a cada elemento.

    La transformación utiliza “@(1,”* == null”)” para comprobar si un elemento es nulo. Si lo es, la transformación establece un valor por defecto de “” (una cadena vacía). Esto elimina efectivamente cualquier valor nulo del resultado.

Comments are closed.