İçeriğe atla
%100 yerel

jq filtre oluşturucu

Bir JSON belgesini çalışan bir jq filtresine dönüştürün, kendi verinizde canlı önizlemeyle.

Giriş
Çıkış

jq filtre oluşturucu

Bir JSON belgesi yapıştırın, bu araç içindeki her alan yolunu jq'nun kendi nokta ve köşeli parantez söz dizimiyle listeler — .users[].email, .items[0].price ve benzerleri — böylece kendiniz yazmadığınız verinin yapısını tahmin etmenize gerek kalmaz. Bu yollardan birini seçin veya kendi yolunuzu yazın, araç bunun etrafında çalışan bir jq filtresi oluşturur.

İşlem seçeneği hangi tür filtrenin oluşturulacağını belirler. Select, yolun değerini veya değerlerini satır satır döndürür, tam olarak sade bir jq'nun bir akışı yazdırdığı gibi. Map, aynı değerleri köşeli parantezli tek bir JSON dizisine sarar. Filter, [] ile biten bir yol ve age > 18 veya status == "active" gibi bir koşul gerektirir — arka planda select() kullanarak yalnızca eşleşen öğeleri tutar. Aggregate, sonunda [] olmayan tüm bir diziyi hedefler ve eleman sayısını bildirir; her eleman bir sayıysa toplamı, minimumu ve maksimumu da; önce yalnızca koşulu geçen elemanları toplamak için bir koşul ekleyin.

Ham metin çıktısı, dize sonuçlarındaki tırnak işaretlerini kaldırır, tıpkı jq'nun -r bayrağı gibi; kompakt çıktı JSON'u iki boşluklu girinti yerine tek satıra sıkıştırır. jq söz dizimi sürümü seçeneği, oluşturulan filtreye yalnızca jq 1.5, 1.6 veya 1.7 için bir yorum ekler — bir hattı belirli bir sürüme sabitlerken kullanışlıdır — önizlemenin hesapladığı sonucu değiştirmeden, çünkü aracın uyguladığı jq alt kümesi üçünde de aynı şekilde davranır. Koşullar ==, !=, >, >=, <, <= ve contains'i destekler ve sayılar, dizeler, mantıksal değerler, null veya tırnak içindeki metinle karşılaştırma yapar.

Her şey tarayıcınızda yerel olarak çalışır: yapıştırdığınız JSON, oluşturduğunuz filtre ve ürettiği sonuç cihazınızdan asla çıkmaz. Filtreden memnun kaldığınızda sonucu kopyalayın, .txt dosyası olarak indirin veya çıktıyı daha fazla ayrıntılandırmak için tekrar girdiye gönderin.

FAQ

Bu gerçek bir jq ikili dosyası mı çalıştırıyor?
Hayır. Araç, jq yol söz dizimi ve işlemlerinin pratik bir alt kümesini JavaScript içinde uygular, bu yüzden burada gördüğünüz aynı filtre, tam bir jq kurulumunun ele alacağı uç durumlar için düzenleme gerektirebilir.
Filter neden [] ile biten bir yol istiyor?
Filtreleme bir dizinin tek tek öğelerini tutar veya atar, bu yüzden yolun yinelenen bir koleksiyonu adlandırması gerekir — .users yerine .users[]. Bu böyle değilse araç size bunu bildirir.
Koşul alanı neyi kabul eder?
Bir alan adı artı bir operatör ve değer, age > 18 veya status == "active" gibi, ya da bir dizinin elemanlarını doğrudan karşılaştırmak için sadece bir operatör ve değer (> 10). Desteklenen operatörler ==, !=, >, >=, <, <= ve contains'tir.
Aggregate bazı yollar için neden yalnızca sayı gösterir?
Toplam, minimum ve maksimum yalnızca sayılardan oluşan bir dizide anlamlıdır. Dizi nesneler içeriyorsa — örneğin bir kullanıcı listesi — yine de bir sayı alırsınız, isteğe bağlı olarak önce bir koşulla daraltılmış.
JSON'um bir yere yükleniyor mu?
Hayır. Ayrıştırma, yol keşfi ve filtreleme tamamen tarayıcınızda gerçekleşir — belgeniz asla bir sunucuya gönderilmez.