Preciso extrair algumas informações do JSON. Meu JSON fica assim:
{
"pipeline1": {
"description": "Desc 1",
"last_modified": "2023-11-14T09:27:50.235Z",
"pipeline_metadata": {
"version": 1,
"type": "logstash_pipeline"
},
"username": "user1",
"pipeline": "code",
"pipeline_settings": {
"pipeline.batch.delay": 50,
"pipeline.batch.size": 125,
"pipeline.workers": 1,
"queue.checkpoint.writes": 1024,
"queue.max_bytes": "1gb",
"queue.type": "memory"
}
}
}
Resultado esperado:
{
"pipeline": "pipeline1",
"description": "Desc 1"
"last_modified": "2023-11-14T09:27:50.235Z"
"username": "user1"
"pipeline": "code"
}
É possível com jq
?
Sua saída esperada contém uma chave duplicada
pipeline
, que jq não pode produzir por meios regulares. Mas se você aceitar outro nome para um deles, por exemplo, renomeando o primeiro paraparent
, você poderá obter a saída esperada decompondo a entrada comto_entries
e atribuindo todos os valores alvo:Demonstração