logo
GeekFormat

JSONPath Sorgu

JSONPath ifadeleriyle çevrimiçi olarak JSON sorgulayın. API test mühendisleri ve veri analistleri için oluşturulmuştur. Standart JSONPath ifadeleri kullanarak büyük, derin iç içe geçmiş JSON'lardan verileri hassas şekilde çıkarın, filtreleyin ve konumlandırın. Gerçek zamanlı sözdizimi vurgulama, akıllı hata ipuçları ve çift görünüm JSON/tablo geçişini destekler. Postman API otomasyon test doğrulamaları, karmaşık günlük verisi temizleme ve ön uç alan çıkarma için mükemmeldir. Saf yerel işleme, hızlı ve güvenli.

İlgili Öneriler

Kullanım senaryoları

  • Arayüzlerde hata ayıklama sırasında derin iç içe geçmiş API yanıtlarından belirli alanları çıkarma
  • Koda uygulamadan önce Postman'da otomatikleştirilmiş API testleri için doğrulamalar oluşturma
  • Anormal kayıtları bulmak için büyük hacimli günlük verilerini filtreleme ve temizleme
  • Yapılandırılmış JSON'lardan tablo düzenleyicilerinde analiz için veri kümeleri çıkarma
  • JMeter yük testlerinde kullanmak üzere JSONPath ifadelerini prototipleme
  • Entegrasyon sırasında üçüncü taraf API yanıtlarının yapısındaki hataları hızla bulma ve konumlandırma
  • Yeniden düzenleme için ön uç yapılandırma JSON dosyalarından alanları çıkarma
  • Veri analizi sırasında dizileri sayısal veya dize koşullarına göre filtreleme
  • Yeni başlayan geliştiriciler için yerleşik örneklerle JSONPath sözdizimini öğrenme
  • İşlemden önce webhook bildirimlerinin yapısını ve içeriğini kontrol etme
  • Anahtar alanları çıkarıp karşılaştırarak API yanıtlarının farklı sürümlerini karşılaştırma
  • Belgeleme veya raporlar için API yanıtlarından veri hazırlama

Özellikler

  • Hassas veri çıkarma: özellik erişimi, dizi indeksleri, joker karakterler ve hassas veri hedefleme için dilim işlemleri dahil standart JSONPath sözdizimini destekler
  • Akıllı filtreleme ve doğrulamalar: koşullu veri filtreleme için ==/!=/>/</>=/<= operatörleriyle ?() filtrelerini destekler, API test verimliliğini önemli ölçüde artırır
  • Çift etkileşimli görünüm: çıkarma sonuçlarını kolayca görüntülemek ve dışa aktarmak için ham JSON görünümü ile yapılandırılmış tablo görünümü arasında tek tıklamayla geçiş
  • Gerçek zamanlı sözdizimi vurgulama: geliştiricilerin sorgu ifadelerini hızla düzeltmelerine yardımcı olmak için gerçek zamanlı sözdizimi vurgulama ve hata ipuçları sağlar
  • Yerel yüksek hızlı işleme: CodeMirror düzenleyicisi ile tarayıcıda saf yerel hesaplama, hassas test verilerinin ve iş gizliliğinin mutlak güvenliğini sağlar
  • 8 yerleşik örnek: yaygın senaryolar için hazır örnekler, sözdizimini hızla öğrenmenize ve hemen çalışmaya başlamanıza yardımcı olur
  • Otomatik JSON hata düzeltme: yaygın JSON sözdizimi hatalarının yerleşik otomatik algılanması ve düzeltilmesi, konumları hassas şekilde belirtilir
  • Optimize edilmiş 400 ms debounce: hızlı yazma sırasında gereksiz hesaplamaları önleyen, pürüzsüz çalışma sağlayan akıllı yürütme gecikmesi
  • Klavye kısayolu desteği: fare kullanmadan arama, değiştirme, geri alma, yineleme ve diğer işlemler için düzenleyicinin standart klavye kısayolları
  • 200 girişle yerel geçmiş: önceki çalışma oturumlarına hızlı erişim için son 200 sorgunun localStorage'a otomatik olarak kaydedilmesi
  • Dizi indeksi [-1] (son): uzunluğu önceden hesaplamadan negatif indeksler kullanarak dizinin son öğelerine kolay erişim
  • Dizi dilimi [start:end]: programlama dillerinden bilinen dilim sözdizimini kullanarak dizi öğelerinin aralıklarını esnek şekilde çıkarma
  • Joker karakter *: geniş ölçekli veri çıkarma için hiyerarşinin herhangi bir seviyesindeki herhangi bir alan veya öğeyle eşleşme
  • JSON/tablo geçişi: farklı analiz senaryoları için çift sonuç görünümü - yapılandırılmış JSON veya net tablo görünümü

Nasıl Kullanılır

  1. JSON içeriğini sol düzenleyici paneline yapıştırın veya 8 yerleşik örnekten birini yükleyin
  2. JSONPath ifadesini üstteki sorgu alanına girin (örneğin, $.store.book[0].title)
  3. Kaynak verilerde sözdizimi sorunları varsa, gerektiğinde otomatik JSON hata düzeltmesini etkinleştirin
  4. Sonuçları sağ panelde görüntüleyin; gerektiğinde JSON görünümü ile tablo görünümü arasında geçiş yapın
  5. Sonucu kopyalayın, hızlı düzenleme için klavye kısayollarını kullanın veya sorguyu yerel geçmişe kaydedin

Sık Sorulan Sorular

Derin iç içe geçmiş JSON'dan belirli alanları hassas şekilde çıkarmak için JSONPath'i nasıl kullanırım?

Sorgu kutusuna standart bir JSONPath ifadesi girmeniz yeterlidir (örneğin, `$.store.book[0].title`), araç hiyerarşik gezinme yoluyla derin verileri hızla bulacak ve çıkaracaktır. Büyük JSON dosyalarını manuel olarak genişletmeye kıyasla bu yaklaşım, veri konumlandırma verimliliğini önemli ölçüde artırır ve karmaşık API yanıtlarını işlemek için idealdir.

Karmaşık koşullu sorgular için joker karakterler veya filtreler destekleniyor mu?

Tam olarak desteklenir. Herhangi bir alanla eşleştirmek için joker * karakterini veya gelişmiş filtreleme için ?() filtrelerini kullanabilirsiniz. Örneğin, `$.store.book[?(@.price < 10)]` girdiğinizde fiyatı 10'un altında olan tüm kitapları anında filtreleyecektir. Araç, eşleşen sonuçları gerçek zamanlı olarak vurgular ve tablo görünümünde sezgisel olarak görüntülemeyi destekler.

Bu araç API otomasyon testi ve doğrulamalar konusunda bana nasıl yardımcı olabilir?

API otomasyon testinde, API yanıtı JSON'unu araca yapıştırabilir ve test doğrulamaları olarak JSONPath ifadeleri yazabilirsiniz. Döndürülen sonucun beklentileri karşılayıp karşılamadığını hızla doğrulayarak (örneğin, `$.code` değerinin 200'e eşit olup olmadığını kontrol ederek), arayüz mantığı hatalarını hızla giderebilirsiniz; bu da onu Postman veya JMeter test iş akışlarında güçlü bir asistan yapar.

Dizinin son öğesine nasıl erişebilirim?

Dizinin son öğesine erişmek için negatif indeks [-1], sondan bir önceki için [-2] vb. kullanın. Bu, özellikle dinamik API yanıtlarıyla çalışırken dizi uzunluğunu önceden hesaplamaktan çok daha uygundur.

Dizi dilimini [start:end] nasıl kullanırım?

Dizi dilimi JavaScript dizilerine benzer şekilde çalışır: `$.items[0:3]` ilk 3 öğeyi döndürür, `$.items[2:5]` ise 2'den 4'e kadar olan indekslerdeki öğeleri döndürür. start'ı atlarsanız, sayma baştan başlar; end'i atlarsanız, dizinin sonuna kadar devam eder.

Filtrelerde ?() hangi karşılaştırma operatörleri desteklenir?

Tüm temel karşılaştırma operatörleri desteklenir: == (eşittir), != (eşit değildir), > (büyüktür), < (küçüktür), >= (büyük veya eşittir), <= (küçük veya eşittir). Bunları sayısal veya dize değerlerine göre verileri hassas şekilde filtrelemek için birleştirebilirsiniz.

Kaç tane yerleşik örnek mevcut?

Araç, en yaygın kullanım senaryolarını kapsayan 8 yerleşik örnek içerir: alan çıkarma, koşullu filtreleme, dizilerle çalışma, joker karakterler, dilimler ve daha fazlası. Sözdizimini hızla öğrenmek için herhangi bir örneği tek tıklamayla yükleyebilirsiniz.

JSON'um sözdizimi hataları içeriyorsa ne olur?

Araç, JSON hatalarını otomatik olarak düzeltme özelliğine sahiptir. Eksik tırnak işaretleri, fazladan virgüller, çift yerine tek tırnak işaretleri gibi yaygın sorunları otomatik olarak algılar ve düzeltmeler önerir. Hatalar, gerçek zamanlı olarak konumları belirtilerek vurgulanır.

Giriş sırasında debounce gecikmesi nasıl çalışır?

400 ms'lik optimize edilmiş bir gecikme kullanılır. Bu, sorgunun yalnızca yazmayı 400 ms boyunca bıraktığınızda yürütüldüğü anlamına gelir; bu, hızlı yazma sırasında gereksiz hesaplamaları önler ve gecikme olmadan pürüzsüz çalışma sağlar.

Hangi klavye kısayolları desteklenir?

CodeMirror düzenleyicisinin standart klavye kısayolları desteklenir: arama için Ctrl/Cmd + F, değiştirme için Ctrl/Cmd + H, geri alma için Ctrl/Cmd + Z, yineleme için Ctrl/Cmd + Shift + Z, tümünü seçme için Ctrl/Cmd + A. Tam liste düzenleyici yardımında mevcuttur.

Sorgu geçmişi yerel olarak kaydediliyor mu?

Evet, araç son 200 sorguyu tarayıcınızın localStorage'ına otomatik olarak kaydeder. Geçmiş, sekmeyi kapatıp yeniden açtıktan sonra bile kalır; bu da önceki çalışma oturumlarına geri dönmek için uygundur.

Veriler sunucuya gönderiliyor mu?

Hayır. Tüm işleme, CodeMirror düzenleyicisi kullanılarak tamamen tarayıcınızda yerel olarak gerçekleşir. Veriler hiçbir zaman herhangi bir sunucuya yüklenmez; bu da hassas API verileri, belirteçler veya iş bilgileriyle çalışırken tam gizlilik sağlar.

JSON ve tablo görünümü arasında geçiş yapabilir miyim?

Evet, araç çift görünümü destekler. Tablo görünümünde, sorgu sonuçları sütunlar ve satırlar halinde yapılandırılmış bir biçimde görüntülenir; bu, özellikle nesne dizilerini çıkarırken kullanışlıdır - birçok kaydı kolayca görüntüleyebilir ve karşılaştırabilirsiniz.

Bunu Postman'da doğrulamalar için nasıl kullanırım?

Önce JSONPath ifadesini bu araçta prototipleyin ve hatalarını ayıklayın, ardından Postman testlerine kopyalayın. Sözdizimi, pm.response.json() doğrulamaları için Postman'da kullanılan JSONPath uygulamasıyla uyumludur; bu da hazır ifadeleri hızla aktarmanızı sağlar.

JMeter'da test için uygun mu?

Kesinlikle. Burada geliştirilen JSONPath ifadeleri, JMeter eklentisinin JSON Extractor ve JSON Assertion bileşenlerinde doğrudan kullanılabilir. Bu, yük testlerine uygulamadan önce ifadenin doğruluğunu görsel olarak kontrol etmenizi sağlayarak test planları oluşturmayı hızlandırır.

JSONPath nedir ve bu çevrimiçi araç

JSONPath, XML için XPath'e benzer şekilde JSON yapılarından veri çıkarmak için bir sorgu ve ifade dilidir. Döngüler yazmadan veya manuel olarak gezinmeden derin iç içe geçmiş nesneler ve diziler arasında hassas şekilde gezinmenize, belirli alanları çıkarmanıza, öğeleri koşullara göre filtrelemenize ve ihtiyacınız olan veri parçalarını almanıza olanak tanır. JSONPath, 2007 yılında Stefan Gössner tarafından önerilmiş ve o zamandan beri API testi, veri analizi ve yapılandırılmış belgelerin işlenmesinde JSON ile çalışmak için fiili standart haline gelmiştir.

Bu çevrimiçi araç, doğrudan tarayıcıda JSONPath sorguları yürütmek için kullanışlı bir arayüzdür. Özellikle API test mühendisleri, veri analistleri ve karmaşık API yanıt yapıları, günlük verileri ve yapılandırma dosyalarıyla sık sık çalışan ön uç geliştiriciler için oluşturulmuştur. Kod yazmak veya hantal kitaplıklar kullanmak yerine JSON'u yapıştırabilir, bir ifade girebilir ve sonucu anında görebilirsiniz.

Araç, günlük görevlerin ezici çoğunluğunu kapsayan pratik sözdiziminin çekirdeğini destekler. Nokta yoluyla hassas özellik erişimini (örneğin, $.store.book.title), dizinin sonundan erişim için negatif indeksler dahil dizi indekslemeyi ([son öğe için -1]), herhangi bir alanla eşleştirmek için joker * karakterini, aralıkları çıkarmak için [start:end] dizi dilimlerini ve tam karşılaştırma operatörleri seti ==, !=, >, <, >=, <= ile koşullu ?() filtrelerini kullanabilirsiniz. Bu set, tipik veri çıkarma görevlerinin %90'ından fazlasını çözmek için yeterlidir.

Anahtar özelliklerden biri, sonuçların çift görünümüdür: klasik JSON görünümü ile yapılandırılmış tablo görünümü arasında geçiş yapabilirsiniz. Tablo görünümü, özellikle nesne dizileriyle çalışırken kullanışlıdır - sonuçlar sütunlar ve satırlar halinde görüntülenir; bu da görsel analiz yapmayı, değerleri karşılaştırmayı ve raporlar veya daha fazla işlem için veri hazırlamayı kolaylaştırır. Modlar arasında geçiş, yeniden sorgu yapmadan tek tıklamayla gerçekleşir.

Üretkenliği artırmak için araç, yaygın kullanım senaryolarını kapsayan 8 hazır örnek içerir. JSONPath'te yeniyseniz, herhangi bir örneği tek tıklamayla yükleyebilir, ifadenin yapısını inceleyebilir ve hemen sonucu görebilirsiniz. Giriş sırasında 400 milisaniyelik optimize edilmiş bir debounce gecikmesi kullanılır - sorgu yalnızca yazmayı bıraktığınızda yürütülür; bu, hızlı yazma sırasında gecikmeleri ve gereksiz hesaplamaları önler.

Düzenleyici, profesyonel kod çalışması sağlayan CodeMirror üzerine inşa edilmiştir: gerçek zamanlı sözdizimi vurgulama, satır numaralandırma, akıllı girintileme ve arama, değiştirme, geri alma ve yineleme için standart klavye kısayolları desteği. Araç ayrıca yerleşik otomatik JSON hata düzeltme özelliği içerir - yaygın sorunları (eksik tırnaklar, fazladan virgüller, tek tırnaklar) algılar ve sorgu için verileri hızla hazırlamanıza yardımcı olarak konumları hassas şekilde vurgular.

Tüm işleme tamamen tarayıcınızda yerel olarak gerçekleşir - hiçbir veri sunucuya gönderilmez. Bu, hassas verilerle çalışırken kritik öneme sahiptir: yetkilendirme belirteçleri, kullanıcıların kişisel verileri, dahili iş verileri veya gizli API yanıtları. Yeniden kullanım kolaylığı için son 200 sorgunun yerel geçmişi, tarayıcınızın localStorage depolama alanına otomatik olarak kaydedilir - geçmiş, sekmeyi kapattıktan sonra bile kalır.

Bu araç, Postman ve JMeter ile çalışırken yaygın olarak kullanılır: bir JSONPath ifadesini burada hızla prototipleyip hatalarını ayıklayabilir, ardından Postman testlerine (pm.response.json() için) veya JMeter'daki JSON Extractor/JSON Assertion bileşenlerine kopyalayabilirsiniz. Bu uygulamanın, günlük geliştirme senaryolarının %90'ından fazlasını kapsayan pratik sözdiziminin çekirdeğine odaklandığını belirtmek önemlidir: özyinelemeli iniş (..), betik ifadeleri ve çoklu koşul kombinasyonları şu anda desteklenmemektedir; bu, hız, güvenilirlik ve öngörülebilir davranış sağlamak için kasıtlı olarak yapılmıştır.

术语表

$
JSONPath kök öğesi, belgenin kökündeki tüm nesneyi veya diziyi temsil eder. Her mutlak yol ifadesi onunla başlar.
@
Geçerli düğüm, ?() filtre ifadelerinin içinde geçerli işlenen öğenin özelliklerine başvurmak için kullanılır.
*
Hiyerarşinin geçerli seviyesindeki bir nesnedeki herhangi bir alanla veya dizideki herhangi bir öğeyle eşleşen joker karakter.
.
Alt özellik erişim operatörü, iç içe geçmiş nesnelerde gezinmek için kullanılır, örneğin $.store.book.
[]
Dizi indeks operatörü, öğelere indekse göre erişmek için kullanılır, örneğin ilk öğe için [0] veya son öğe için [-1].
[start:end]
Dizi dilim operatörü, Python veya JavaScript'teki dilimlere benzer şekilde, başlangıçtan sona (son dahil değil) kadar olan öğe aralığını çıkarır.
?()
Filtre ifadesi operatörü, bir koşulu bir dizinin veya nesnenin her öğesine uygular ve yalnızca koşulu karşılayanları döndürür.
==
Filtrelerde eşitlik operatörü, özellik değerinin belirtilen değere eşit olup olmadığını kontrol eder.
!=
Filtrelerde eşitsizlik operatörü, özellik değerinin belirtilen değerden farklı olup olmadığını kontrol eder.
>
Filtrelerde 'büyüktür' operatörü, sayısal karşılaştırmalar için kullanılır: özellik değerinin belirtilen eşiği aşıp aşmadığını kontrol eder.
>=
Filtrelerde 'büyük veya eşittir' operatörü, özellik değerinin belirtilen değerden büyük veya ona eşit olduğunu kontrol eder.
CodeMirror
Araçta sözdizimi vurgulama, satır numaralandırma ve rahat düzenleme sağlamak için kullanılan yüksek performanslı kod düzenleyicisi.

JSONPath Temel Sözdizimi Kılavuzu

Aşağıda, bu araç tarafından desteklenen temel JSONPath sözdizimi ifadeleri ve kullanım örnekleri verilmiştir.

SözdizimiÖrnekAçıklama
$$Kök düğüm, tüm belgeyi temsil eder
.property$.storeNesnenin alt özelliğine erişim
[index]$.books[0]Dizinin öğesine indekse göre erişim (0'dan başlayarak)
[-1]$.books[-1]Dizinin son öğesine erişim
*$.store.*Joker karakter, herhangi bir alan/öğeyle eşleşir
[start:end]$.books[0:3]Dizi dilimi, başlangıçtan son-1'e kadar olan öğeler
?()$.books[?(@.price<10)]Koşullu filtre, eşleşen öğeleri döndürür

Filtrelerde Karşılaştırma Operatörleri

?() filtre ifadelerinin içinde kullanım için desteklenen tüm karşılaştırma operatörleri.

OperatörÖrnekAçıklama
==?(@.category=='fiction')Eşittir — değerle tam eşleşme
!=?(@.status!='draft')Eşit değildir — belirtilen değeri hariç tutar
>?(@.price>20)Büyüktür — sayısal karşılaştırmalar için
<?(@.stock<5)Küçüktür — sayısal karşılaştırmalar için
>=?(@.rating>=4.5)Büyük veya eşittir
<=?(@.age<=18)Küçük veya eşittir

Düzenleyici Klavye Kısayolları

Üretkenliği artırmak için CodeMirror düzenleyicisinin standart klavye kısayolları.

Kısayol (Windows/Linux)Macİşlem
Ctrl + FCmd + FDüzenleyicide arama
Ctrl + HCmd + HArama ve değiştirme
Ctrl + ZCmd + Zİşlemi geri alma
Ctrl + Shift + ZCmd + Shift + Zİşlemi yineleme
Ctrl + ACmd + ATümünü seçme
Ctrl + /Cmd + /Yorum geçişi (JSON'da desteklenmez)

Privacy & Security

Bu araçtaki tüm JSONPath sorguları, JSON işleme ve hesaplamalar, CodeMirror düzenleyicisi kullanılarak tamamen tarayıcınızda yerel olarak gerçekleşir. Veriler hiçbir zaman herhangi bir sunucuya yüklenmez, kaydedilmez veya uzaktan önbelleğe alınmaz. Araç, sırlar, belirteçler veya kullanıcı bilgileri içeren API yanıtlarını işlerken bile güvenlidir. Veriler, sayfa kapatıldığında veya yenilendiğinde otomatik olarak temizlenir; yerel geçmiş yalnızca kendi localStorage depolama alanınızda saklanır.

Authoritative References

Troubleshooting

İfade boş sonuç döndürüyor, ancak veriler mevcut

Yol yazımını kontrol edin: büyük/küçük harf duyarlılığı, iç içe geçmenin doğruluğu, alan adlarında yazım hatalarının varlığı. JSONPath'in özyinelemeli inişi (..) desteklemediğini unutmayın; bu nedenle her seviye için tam yolu belirtmeniz gerekir. Önce daha basit bir ifadeyi test etmeyi deneyin, yavaş yavaş karmaşıklaştırın.

Filtre ?() beklendiği gibi çalışmıyor

Doğru karşılaştırma operatörlerini kullandığınızdan ve dize değerlerinin tek tırnak içinde olduğundan emin olun. Veri türünü kontrol edin: sayısal değerlerin tırnak içine alınması gerekmez. Örneğin, sayılar için ?(@.price<10) doğrudur, dizeler için ?(@.category=='fiction') kullanılır.

JSON sözdizimi hatalarıyla görüntüleniyor

Araç, JSON hatalarını otomatik olarak düzeltme özelliğine sahiptir, ancak hata karmaşıksa önce ayrı bir JSON Repair aracı kullanmayı deneyin. En yaygın hatalar: çift yerine tek tırnak işaretleri, anahtarlarda tırnak eksikliği, son öğeden sonra fazladan virgüller, kapanmayan parantezler.

Özyinelemeli iniş .. çalışmıyor

Bu beklenen davranıştır. Bu uygulama, günlük geliştirme senaryolarının %90'ından fazlasını kapsayan pratik sözdiziminin çekirdeğine odaklanır. Özyinelemeli iniş (..), betik ifadeleri ve çoklu koşul kombinasyonları şu anda desteklenmemektedir. İç içe geçme seviyelerini açıkça belirten kesin yollar kullanın.