Estoy usando jq pero tener “-” en mi etiqueta json hace que jq no compile. No puedo escapar para que funcione. Aquí el comando
curl -X GET -H "X-AppKey:foo" "foo/v2/_status" | jq '.component-status[]'
He leído en el github de jq esta publicación https://github.com/stedolan/jq/issues/202 pero no puedo hacer que funcione.
Esta es la salida del rizo
{ "status": "ok", "hostname": "0b0b495a46db", "component-status": [ { "status-code": 200, "component": "Service1", "status": "OK" }, { "status-code": 200, "component": "Service2", "status": "OK" } ] }
¿Alguna idea?
Debe incluir entre corchetes y comillas dobles:
jq '.["component-status"]'
Con su entrada dada, regresa:
[ { "status": "OK", "component": "Service1", "status-code": 200 }, { "status": "OK", "component": "Service2", "status-code": 200 } ]
El Manual jq (desarrollo) -> Filtros básicos :
.foo, .foo.bar
El filtro útil más simple es
.foo
. Cuando se le da un objeto JSON (también conocido como diccionario o hash) como entrada, produce el valor en la tecla “foo”, o nulo si no hay ninguno presente.Si la clave contiene caracteres especiales, debe rodearla con comillas dobles como esta:.
."foo$"
.
Del problema github No se puede seleccionar el campo si el nombre del campo tiene guiones :
Actualmente, eso se analiza como una resta. Siempre puede utilizar explícitamente cadenas para cuando sus claves no se ajustan a la syntax del identificador.