Solución:
La etiqueta original de esta pregunta era jq
así que aquí hay un jq
solución:
.[] | keys[]
Por ejemplo, con la entrada como se muestra en la pregunta:
$ jq '.[] | keys[]' input.json
"identifier1"
"identifier2"
Para recuperar los nombres de las claves en el orden en que aparecen en el objeto JSON, utilice keys_unsorted
.
Creo que algo así funcionaría bien:
jq '. | to_entries | .[].key'
ver https://stedolan.github.io/jq/manual/#to_entries,from_entries,with_entries
o si desea obtener los valores de una variable:
JSON_DATA={main:{k1:v1,k2:v2}}
result=$(jq -n "$JSON_DATA" | jq '.main | to_entries | .[].value' --raw-output)
echo $result
##outputs: v1 v2
Vine aquí con la esperanza de ordenar un montón de claves de mi JSON, encontré dos funciones útiles. Hay tres funciones “to_entries”, “from_entries” y “with_entries”. Puede filtrar los valores por clave o valor, así:
JSON_DATA='
{
"fields": {
"first": null,
"second": "two",
"third": "three"
}
}
'
echo "$JSON_DATA" | jq '{fields: .fields | with_entries(select(.value != null and .key != "third")) }'
Producción:
{
"fields": {
"second": "two"
}
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)