Есть ли какой-то язык запросов ...
JQ определяет J SON д язык uery , который очень похож на JSONPath - см https://github.com/stedolan/jq/wiki/For-JSONPath-users
... [который] я могу использовать, чтобы найти элемент в [0] .объектах, где id = 3?
Я предполагаю, что это означает: найти все объекты JSON под указанным ключом с id == 3, независимо от того, где объект может быть. Соответствующий JQ-запрос будет:
.[0].objects | .. | objects | select(.id==3)
где "|" является оператором канала (как в каналах командной оболочки), и где сегмент ".. | objects" соответствует "независимо от того, где объект может быть".
Основы jq в основном очевидны, интуитивно понятны или, по крайней мере, довольно просты, а большинство остальных легко понять, если вы вообще знакомы с каналами командной оболочки. JQ FAQ содержит ссылки на учебные пособия и тому подобное.
jq также похож на SQL в том, что он поддерживает операции CRUD, хотя процессор jq никогда не перезаписывает свой ввод. jq также может обрабатывать потоки объектов JSON.
При оценке языка запросов, ориентированного на JSON, вы можете рассмотреть два других критерия:
- это поддерживает регулярные выражения? (JQ 1.5 имеет всестороннюю поддержку регулярных выражений PCRE)
- это полный по Тьюрингу? (Ага)