Чи є якась мова запитів ...
jq визначає мовою J SON q, яка дуже схожа на JSONPath - див. https://github.com/stedolan/jq/wiki/For-JSONPath-users
... [який] я можу знайти предмет у [0] .об'єктах, де id = 3?
Я припускаю, що це означає: знайдіть усі об'єкти JSON під вказаним ключем з id == 3, незалежно від того, де об'єкт може бути. Відповідним запитом jq було б:
.[0].objects | .. | objects | select(.id==3)
де "|" є трубним оператором (як у командних оболонкових трубах), і де сегмент ".. | об'єкти" відповідає "незалежно від того, де об'єкт може бути".
Основи jq в основному очевидні або інтуїтивно зрозумілі або, принаймні, досить прості, а більшість решти легко підібрати, якщо ви взагалі знайомі з командними оболонками. Поширені питання jq мають вказівки на підручники тощо.
jq також схожий на SQL, оскільки він підтримує CRUD-операції, хоча jq-процесор ніколи не перезаписує свій вхід. jq також може обробляти потоки сутностей JSON.
Ще два критерії, які ви можете врахувати при оцінці мови запитів, орієнтованих на JSON, є:
- чи підтримує він регулярні вирази? (jq 1.5 має всебічну підтримку регулярного виразу PCRE)
- це Тюрінг-повний? (так)