JSONPath Test Aracı
JSON’u JSONPath ifadeleriyle sorgulayın, her eşleşmeyi yoluyla görün
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.