¿Hay algún tipo de lenguaje de consulta ...
jq define un lenguaje de consulta J SON q que es muy similar a JSONPath; consulte https://github.com/stedolan/jq/wiki/For-JSONPath-users
... [que] puedo usar para encontrar un elemento en [0] .objects donde id = 3?
Asumiré que esto significa: encuentre todos los objetos JSON bajo la clave especificada con id == 3, sin importar dónde pueda estar el objeto. Una consulta jq correspondiente sería:
.[0].objects | .. | objects | select(.id==3)
donde "|" es el operador de tubería (como en las tuberías de shell de comando), y donde el segmento ".. | objetos" corresponde a "sin importar dónde pueda estar el objeto".
Los conceptos básicos de jq son en gran medida obvios o intuitivos o al menos bastante simples, y la mayoría del resto es fácil de aprender si está familiarizado con las tuberías de shell de comandos. Las preguntas frecuentes de jq tienen punteros a tutoriales y similares.
jq también es como SQL porque admite operaciones CRUD, aunque el procesador jq nunca sobrescribe su entrada. jq también puede manejar flujos de entidades JSON.
Otros dos criterios que puede considerar al evaluar un lenguaje de consulta orientado a JSON son:
- ¿admite expresiones regulares? (jq 1.5 tiene soporte completo para PCRE regex)
- ¿Es Turing completo? (Sí)