Jolt Transform JSON Spec para entrada de matriz
Aug 27 2020
Estou tentando fazer a operação de deslocamento JOLT com especificação abaixo, que não está funcionando. Não tenho certeza do erro que cometi. Precisa de ajuda neste caso. A saída JSON está vindo como um objeto em vez de Array e shift também não está funcionando conforme o esperado.
Input : [
{
"Header": {
"Number": 1,
"Id": "JO"
},
"Name": "John"
},
{
"Header": {
"Number": 2,
"Id": "JS"
},
"Name": "Justin"
}
]
Spec : [
{
"operation": "shift",
"spec": {
"*": {
"Header": "Header",
"Name": "Header.Name"
}
}
}
]
Expected Output : [
{
"Header": {
"Number": 1,
"Id": "JO",
"Name": "John"
}
},
{
"Header": {
"Number": 2,
"Id": "JS",
"Name": "Justin"
}
}
]
Actual Output : {
"Header" : [ {
"Number" : 1,
"Id" : "JO",
"Name" : "John"
}, {
"Number" : 2,
"Id" : "JS"
} ]
}
Respostas
1 kasptom Aug 27 2020 at 20:46
Você também deve especificar que o "Header"objeto está dentro do array .
Além disso, o índice da matriz onde você coloca o "Header"objeto para cada um dos elementos da matriz.
Isso é o que a especificação abaixo faz (usando o curinga -apmersand[&1] combinado com array):
[
{
"operation": "shift",
"spec": {
"*": {
"Header": "[&1].Header",
"Name": "[&1].Header.Name"
}
}
}
]
Fontes:
- Shiftr.java javadocs :
- as matrizes
- O curinga e comercial
- Outra resposta: "Como transformo um array usando o Jolt?"
- Aplicativo de demonstração vinculado no repositório Jolt para testar a especificação
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino