onlinetools.dev

JSONPath Test Aracı

JSON’u JSONPath ifadeleriyle sorgulayın, her eşleşmeyi yoluyla görün

Yerelde çalışır
loading…
Bu araç hakkında

JSONPath ifadelerini kendi JSON’unuza karşı test edin; her eşleşmeyi hem değeriyle hem somut yoluyla görün. Günlük kullanımı kapsayan sözdizimi desteklenir: nokta ve köşeli parantez gösterimi, dizi indeksleri (negatifler dâhil), joker karakterler, birleşimler (['a','b']) ve özyinelemeli iniş ($..price).

Eşleşme başına yol çıktısı sessizce en faydalı kısımdır: derin bir belgede $..id sorgusu çalıştırın; her sonuç size tam olarak nerede yaşadığını söyler ($.data.items[3].id) ve doğrudan koda yapıştırmaya hazırdır. “Bu yığının bir yerinde” ifadesini kesin bir adrese çevirir.

Filtre ifadeleri ([?(@.price < 10)]) henüz uygulanmadı — araç yanlış sonuç döndürmek yerine bunu açıkça söyler. JSONPath kullanımının çoğunu oluşturan yapısal ayıklama içinse her şey çalışır.

Sıkça sorulan sorular

$.a.b ile $..b arasındaki fark ne?
$.a.b tek bir kesin rotayı izler: kökteki a anahtarı, sonra onun içindeki b anahtarı. $..b (özyinelemeli iniş) ise belgenin herhangi bir derinliğindeki her b değerini bulur. Özyinelemeli iniş güçlüdür ama şaşırtabilir — hiç düşünmediğiniz şeylerin içine gömülü b anahtarlarını da eşler.
Boşluk ya da tire içeren anahtarlara nasıl erişirim?
Tırnaklı köşeli parantez gösterimiyle: $['my key'] veya $.data['content-type']. Nokta gösterimi yalnızca geçerli tanımlayıcıya benzeyen adlarda çalışır.
Negatif dizi indeksleri çalışıyor mu?
Evet — [-1] son eleman, [-2] sondan ikincidir; Python’un yaygınlaştırdığı ve RFC 9535’in benimsediği gelenekle uyumludur. [0] yine ilk elemandır.
JSONPath standartlaştırıldı mı?
2024’ten beri evet — RFC 9535 sözdizimini ve anlambilimini tanımlar. Ondan önce yazılmış uygulamalar sınır durumlarda (özellikle filtreler ve birleşimler) farklılık gösterir; yani aynı ifade kütüphaneden kütüphaneye farklı davranabilir. Dağıtımda kullandığınız uygulamaya karşı test edin.
İlgili araçlar