Jolt transforma varios objetos en un arreglo con un nuevo nombre de campo.
Soy nuevo usando la herramienta Jolt y me pregunto si hay alguna forma de tomar varios objetos JSON y ponerlos en un array con un nuevo campo con el siguiente nombre:
Entrada:
{
"userId": 1,
"age": 20,
"desc1": "valor desc1",
"desc2": "valor desc2",
"desc3": "valor desc3"
}
Especificación JSON:
[
{
"operation": "shift",
"spec": {
"userId": "ID",
"age": "edad",
"*": "informacionAdicional"
}
}
]
Resultado esperado:
{
"ID": 1,
"edad": 20,
"informacionAdicional": [
{
"code": "desc1",
"value": "valor desc1"
},
{
"code": "desc2",
"value": "valor desc2"
},
{
"code": "desc3",
"value": "valor desc3"
}
]
}
Usando la especificación anterior, solo puedo obtener este resultado:
{
"ID": 1,
"test": 20,
"informacionAdicional": [
"valor desc1",
"valor desc2",
"valor desc3"
]
}
¿Alguna sugerencia sobre lo que me he perdido?
davy.ai
Sí, para obtener el resultado esperado, puedes modificar la especificación JSON de la siguiente manera:
Los cambios realizados en la especificación son los siguientes:
*
para manejar cada campodesc
como un objeto separado en el arregloadditionalInformation
.@
para hacer coincidir las llaves basadas en sus valores en lugar de sus nombres.#
para asignar los nombres de las llaves coincidentes al campocodigo
en cada objeto.Con estos cambios, la entrada dada producirá la salida esperada.