O Apache Hop não possui processamento json rico, então estou enviando os dados para o postgres para fazer o trabalho
Com um blob de json profundamente aninhado (exemplo de subconjunto abaixo), como posso nivelar e armazenar o resultado? Vou recuperá-lo com Hop e continuar o processamento. A saída final é csv.
Algo como
atualizar um conjunto de tabelas flat_json = flatten(nested_json) onde id = 1;
Esse recorte de jq faz isso, qual é o equivalente em pg?
echo '[{"value": {
"id":"1",
"desc":"widget",
"colours":[{
"hue":"red",
"tint":"light"
},{
"hue":"green",
"tint":"light"
},{
"hue":"blue",
"tint":"dark"
}],
"isActive":true
}}]' | jq '[.[] |
[leaf_paths as $path | {"key": $path | join("_"), "value": getpath($path)}]
| from_entries]
'
result
[
{
"value_id": "1",
"value_desc": "widget",
"value_colours_0_hue": "red",
"value_colours_0_tint": "light",
"value_colours_1_hue": "green",
"value_colours_1_tint": "light",
"value_colours_2_hue": "blue",
"value_colours_2_tint": "dark",
"value_isActive": true
}
]
Se esta é uma ideia deselegante, existe uma maneira concisa de enviar o json para colunas criadas automaticamente? (existem cerca de 200) Ou enviar o json aninhado para uma coleção de tabelas (widgets, cores, mais) vinculadas por chaves estrangeiras geradas automaticamente? Os dados reais possuem um aninhamento mais profundo do que o exemplo mostrado.