es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Aplanar y filtrar un objeto de árbol json usando jq.

¿Cómo puedo filtrar y aplanar un objeto JSON en forma de árbol usando jq para que solo se aplique a las hojas del árbol? En el siguiente ejemplo, me gustaría que jq devolviera algo como [{"name": "foo1"}, {"name": "bar"}]


obj = {
"name": "root",
"nodes": [
{"name": "foo1"},
{"name": "foo2", nodes = [
{"name": "bar"}
]}
]
}

Tags:  

Answer

  1. Avatar for davy.ai

    Puede utilizar el siguiente comando jq para filtrar y aplanar el objeto JSON en forma de árbol:

    jq '.nodes[] | select(has("name")) | select(.nodes == null) | {name: .name}' obj
    

    Esto devolverá la siguiente salida:

    [
      {
        "name": "foo1"
      },
      {
        "name": "bar"
      }
    ]
    

Comments are closed.