🔍

JSONPath Sorgu Aracı

JSONPath ifadeleriyle JSON verisini sorgulayın ve çıkarın

JSON Girdisi

JSONPath

Örnekler: $.store.book[0].title, $.store.book[*], $..author

JSONPath Nedir

JSONPath, XML için XPath'e benzer şekilde JSON için bir sorgu dilidir. Yol ifadeleriyle karmaşık JSON yapılarında gezinmek ve veri çıkarmak için standart bir sözdizimi sunar. JSONPath, kök nesneyi temsil etmek için $ kullanır; alt öğelere erişim için ., dizinleme için [], joker için *, özyinelemeli arama için .. operatörünü sağlar. Filtreleri [?(@.property > value)], dizi dilimlemeyi [start:end:step] ve çoklu seçicileri destekler. JSONPath; API testleri, veri dönüşümleri, konfigürasyon sorguları ve JSON manipülasyonunda yaygın olarak kullanılır; derinlemesine iç içe geçmiş JSON yapılarından belirli değerleri karmaşık JavaScript kodu yazmadan çıkarır.

Özellikler

🔍

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

📋Kullanım Rehberi

1️⃣
JSON Verisini Girin
Sorgulamak istediğiniz JSON verisini yapıştırın veya yükleyin
2️⃣
JSONPath Yazın
JSONPath ifadesi girin veya yaygın desenler için şablonları kullanın
3️⃣
Sorguyu Çalıştırın
Sözdizimi vurgulu eşleşmeleri görmek için sorguyu çalıştırın
4️⃣
Sonuçları Dışa Aktarın
Çıkarılan veriyi tercih ettiğiniz formatta kopyalayın veya indirin

📚Teknik Tanıtım

📝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.

🎯Pratik Kullanım Alanları

JSONPath, REST API yanıtlarından belirli alanları tam deserializasyon yapmadan çıkarmada ustadır. Konfigürasyon yönetimi, iç içe geçmiş yapılandırma değerlerini sorgulamak ve güncellemek için JSONPath kullanır. Veri dönüştürme hatları kaynak JSON'u hedef şemalara eşlemek için JSONPath'ten faydalanır. Postman, REST Assured gibi test çerçeveleri JSONPath doğrulamalarıyla yanıt yapısını ve değerleri kontrol eder. Log analizi JSON formatlı kayıtlardan ilgili alanları çıkarır. GraphQL ve OpenAPI araçları şema gezinimi ve doğrulama için JSONPath kullanır. Performans açısından büyük JSON'larda akış ayrıştırıcılarını veya veritabanlarını (MongoDB sorgu sözdizimi, PostgreSQL jsonb_path_query) düşünün.

Sıkça Sorulan Sorular

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.

User Comments

0 / 2000
Loading...