JSONPath ifadeleriyle JSON verisini sorgulayın ve çıkarın
Features
- Gelişmiş Sorgu Sözdizimi: Joker (*), özyinelemeli arama (..), dizi dilimleme ([start:end]), filtreler ([?(@.price < 10)]) ve çoklu yol seçicileri dahil JSONPath sözdiziminin tamamını destekler
- Yol İfadesi Şablonları: Yaygın sorgular için hazır şablonlar: kök erişimi ($), doğrudan alt öğe ($.key), dizi öğeleri ($.arr[*]), filtreli öğeler ($.arr[?(@.id)]), özyinelemeli arama ($..key)
- Gerçek Zamanlı Önizleme: Sorguları anında çalıştırın; sözdizimi vurgulu JSON giriş/çıkış, eşleşen yolları gösterme, sonuç sayısını sunma ve kaynak JSON'da eşleşen düğümleri vurgulama desteği
- Sonuç Dışa Aktarma: Sorgu sonuçlarını JSON (dizi veya tek değer), tablo verisi için CSV veya biçimlendirilmiş metin olarak tek tıklamayla kopyalayıp indirin
Usage Guide
- JSON Verisini Girin: Sorgulamak istediğiniz JSON verisini yapıştırın veya yükleyin
- JSONPath Yazın: JSONPath ifadesi girin veya yaygın desenler için şablonları kullanın
- Sorguyu Çalıştırın: Sözdizimi vurgulu eşleşmeleri görmek için sorguyu çalıştırın
- Sonuçları Dışa Aktarın: Çıkarılan veriyi tercih ettiğiniz formatta kopyalayın veya indirin
Technical Details
JSONPath Sözdizimi
JSONPath ifadeleri $ (kök nesne) ile başlar ve erişim için nokta ($.property) veya köşeli parantez ($['property']) notasyonu kullanır. Alt düğümler . ayıracıyla belirtilir ($.store.book), diziler [index] veya tüm öğeler için [*] kullanır. Dizi dilimleme [start:end:step], [0:3] (ilk 3 öğe) veya [-1] (son öğe) gibi aralıkları çıkarır. Özyinelemeli arama operatörü .. tüm seviyeleri tarar; $..author, derinlikten bağımsız tüm author alanlarını bulur. Birlik operatörü [,], birden fazla öğeyi seçer: $[0,2,5] belirli dizi indekslerini döndürür.
Filtre İfadeleri
Filtreler, koşula uyan öğeleri seçmek için [?(@.koşul)] sözdizimini kullanır. @, yinelemedeki mevcut düğümü temsil eder. Karşılaştırma operatörleri: ==, !=, <, <=, >, >=. Mantıksal operatörler: && (ve), || (veya), ! (değil). Örnekler: [?(@.price < 10)] fiyatı 10'dan küçük öğeleri seçer; [?(@.category == 'fiction' && @.price < 20)] koşulları birleştirir. Regex eşleme: [?(@.name =~ /pattern/)] düzenli ifadeyle filtreler. Filtreler, hiyerarşi genelinde karşılaştırma yapmak için $ ile köke referans verebilir: [?(@.price < $.maxPrice)].
Uygulama Varyasyonları
JSONPath, sözdiziminde küçük farklılıklara sahip birçok uygulamaya sahiptir: Goessner'ın orijinali (JavaScript), Jayway (Java), jsonpath-ng (Python). Farklılıklar filtre operatörleri (@ ve $ kullanımı), regex desteği, betik ifadeleri ve fonksiyon uzantılarını içerir. Bazı uygulamalar @.length, @.min(), @.max() gibi fonksiyonlar ekler. [(@.price * @.quantity)] tarzı ifadeler hesaplama yapmayı sağlar. ^ (parent) ve ~ (mevcut yol) gibi operatörler bağlam sunar. Hedeflediğiniz uygulamanın desteklediği özellikleri ve sözdizimi nüanslarını dokümantasyondan kontrol edin.
Frequently Asked Questions
- Neden sonuç boş geliyor?
- Path ifadesinin $ ile başladığını, anahtar adlarının doğru olduğunu ve dizi indekslerinin geçerli aralıkta kaldığını kontrol edin. Önce basit bir path ile doğrulayın.
- Her derinlikte anahtar nasıl aranır?
- Özyinelemeli arama operatörü .. kullanın: $..author tüm seviyelerde arar.
- Filtre nasıl yazılır?
- [?(@.price < 10)] biçimini kullanın. @ mevcut öğeyi temsil eder; koşulları && ve || ile birleştirebilirsiniz.
- Boş sonuç ile null farkı nedir?
- Boş sonuç eşleşme yok demektir; null ise eşleşen değerin null olduğunu ifade eder. JSON ve ifadenizi yeniden kontrol edin.
- Büyük JSON'larda performans önerisi?
- .. kullanımını azaltın; önce kapsamı daraltın sonra filtreleyin. Gerekirse streaming/serverside işleme düşünün.
Related Documentation
- JSONPath Spesifikasyonu - Goessner - JSONPath'e ait orijinal öneri ve sözdizimi tanımı
- JSONPath Çevrim İçi Değerlendirici - İfade dokümantasyonu içeren etkileşimli JSONPath test aracı
- RFC 9535 - JSONPath Standardı - JSONPath sorgu dili için IETF standartlaştırma çalışması
- jsonpath-ng Dokümantasyonu - Genişletilmiş özelliklere sahip Python JSONPath uygulaması
- Jayway JSONPath (Java) - Filtre ifadelerini destekleyen popüler Java uygulaması