Перейти до вмісту

Конструктор фільтрів jq

Перетворіть документ JSON на робочий фільтр jq з переглядом на власних даних.

Введення
Вихід

Конструктор фільтрів jq

Вставте документ JSON, і інструмент перелічить кожен знайдений шлях до поля у власному синтаксисі jq з крапками та дужками — .users[].email, .items[0].price і так далі — щоб не доводилося вгадувати структуру даних, які ви написали не самі. Оберіть один із цих шляхів або впишіть власний, і інструмент побудує навколо нього робочий фільтр jq.

Опція «Операція» визначає, який фільтр буде побудовано. Select повертає значення чи значення шляху, по одному на рядок, так само, як звичайний jq виводить потік. Map загортає ті самі значення в один масив JSON із квадратними дужками. Filter потребує шлях, що закінчується на [], та умову на кшталт age > 18 або status == "active" — залишаються лише елементи, що відповідають умові, із select() під капотом. Aggregate вказує на весь масив (без завершальних []) і повідомляє його кількість, а якщо кожен елемент є числом — ще й суму, мінімум та максимум; додайте умову, щоб рахувати лише ті елементи, що їй відповідають.

Виведення у вигляді сирого рядка прибирає лапки з рядкових результатів, повторюючи прапорець -r у jq; компактне виведення стискає JSON в один рядок замість відступу у два пробіли. Опція версії синтаксису jq лише додає коментар до згенерованого фільтра для jq 1.5, 1.6 або 1.7 — зручно, коли ви закріплюєте конвеєр за певною версією — не змінюючи того, що обчислює попередній перегляд, адже підмножина jq, реалізована тут, поводиться однаково в усіх трьох. Умови підтримують ==, !=, >, >=, <, <= та contains і порівнюють із числами, рядками, булевими значеннями, null або текстом у лапках.

Усе працює локально у вашому браузері: вставлений JSON, побудований фільтр і отриманий результат ніколи не залишають ваш пристрій. Коли фільтр вас влаштує, скопіюйте результат, завантажте його як файл .txt або надішліть вивід назад у введення, щоб продовжити уточнення.

FAQ

Чи виконується тут справжній бінарник jq?
Ні. Інструмент реалізує практичну підмножину синтаксису шляхів і операцій jq на JavaScript, тож той самий фільтр може потребувати доопрацювання для крайніх випадків, які обробила б повноцінна інсталяція jq.
Чому Filter вимагає шлях, що закінчується на []?
Фільтрація залишає або відкидає окремі елементи масиву, тож шлях має вказувати на ітеровану колекцію — .users[], а не .users. Інструмент повідомить, якщо це не так.
Що приймає поле умови?
Назву поля плюс оператор і значення, наприклад age > 18 або status == "active", або просто оператор і значення (> 10) для прямого порівняння елементів масиву. Підтримуються оператори ==, !=, >, >=, <, <= та contains.
Чому Aggregate показує лише кількість для деяких шляхів?
Сума, мінімум і максимум мають сенс лише для масиву чисел. Якщо масив містить об'єкти — наприклад, список користувачів — ви все одно отримаєте кількість, за бажанням звужену умовою.
Чи завантажується мій JSON кудись?
Ні. Розбір, пошук шляхів і фільтрація відбуваються повністю у вашому браузері — документ ніколи не надсилається на сервер.