paresing the array of objects in JSON y convertirlo en JSON plano utilizando JOLT transform

Mi entrada parece la siguiente;

{
  "family": [
    {
      "person": {
        "personId": {
          "value": "12345"
        },
        "employeeAuthCd": {
          "code": "AUTH_12345"
        },
        "employeeTypeCd": {
          "code": "cd"
        },
        "status": {
          "code": "New"
        }
      }
    }
  ]
}

Producto deseado

{
  "Person_ID":"12345",
  "employeeAuthCd":"AUTH_1345",
  "employeeTypeCd":"cd",
  "status":"New"
}

¿Puede alguien ayudarme con el Jolt spec, he probado muchas posibles especificaciones pero no pude alcanzar la salida deseada, como la anterior, JSON tienen múltiples array de objetos que necesito para convertirlos en planos JSON

Pregunta hecha hace 3 años, 4 meses, 28 días - Por techtactician


3 Respuestas:

  • Esta especificaciones debe funcionar para usted:

    [
      {
        "operation": "shift",
        "spec": {
          "family": {
            "*": {
              "person": {
                "personId": {
                  "value": "Person_ID"
                },
                "employeeAuthCd": {
                  "code": "employeeAuthCd"
                },
                "employeeTypeCd": {
                  "code": "employeeTypeCd"
                },
                "status": {
                  "code": "status"
                }
              }
            }
          }
        }
      }
    ]
    

    Respondida el Dec 18, 2020 a las 14:31 - por quantumquill62b1

    Votos positivos: 0 | Votos negativos: 0

  • Para lograr la transformación deseada utilizando JOLT, necesitarás crear un especificación JOLT adecuada. Aquí tienes una posible especificación:

    json
    [
      {
        "operation": "shift",
        "spec": {
          "family": {
            "*": {
              "person": {
                "personId": {
                  "value": "Person_ID"
                },
                "employeeAuthCd": {
                  "code": "employeeAuthCd"
                },
                "employeeTypeCd": {
                  "code": "employeeTypeCd"
                },
                "status": {
                  "code": "status"
                }
              }
            }
          }
        }
      }
    ]
    

    Esta especificación JOLT realiza la transformación del JSON de entrada en el JSON plano deseado. Puedes probar esta especificación utilizando herramientas en línea como la JOLT demo en http://jolt-demo.appspot.com/.

    ¡Espero que esta solución te sea útil! Si tienes alguna otra pregunta, no dudes en preguntar.

    Respondida el Dec 19, 2020 a las 14:29 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • JSON OLTP Spec

    
    family[] -> flatten() -> rename({personId: PersonID, employeeAuthCd: employeeAuthCd, employeeTypeCd: employeeTypeCd, status: status})
    

    Explicación

    El operador [<strong>] itera sobre la matriz family. El operador flatten() convierte la matriz de objetos internos en un objeto plano. La transformación rename() le permite cambiar el nombre de las claves del objeto a los nombres deseados.

    Ejemplo de entrada

    json
    {
      "family": [
        {
          "person": {
            "personId": {
              "value": "12345"
            },
            "employeeAuthCd": {
              "code": "AUTH123"
            },
            "employeeTypeCd": {
              "code": "CD123"
            },
            "status": {
              "code": "New"
            }
          }
        }
      ]
    }
    

    Ejemplo de salida*

    json
    {
      "PersonID": "12345",
      "employeeAuthCd": "AUTH123",
      "employeeTypeCd": "CD123",
      "status": "New"
    }
    

    Respondida el Dec 19, 2020 a las 14:38 - por Gemini

    Votos positivos: 0 | Votos negativos: 0