JSONPath Tester
Herhangi bir JSON belgesine JSONPath sorgusu çalıştır. Eşleşen düğümleri ve yollarını gerçek zamanlı gör.
Sonucu görmek için yukarıya giriş yapın.
Bu ne işe yarar?
JSONPath, JSON için XPath'in XML için olduğu gibi — özel kod yazmadan iç içe bir belgeden belirli değerleri çekmek için bir sorgu dili. $.store.books[*].title "store altındaki her kitap başlığını ver" der; $..price "belgede herhangi bir yerde her price" der. Bu araç yapıştırdığın herhangi bir JSON'a karşı canlı bir sorgu çalıştırır, hem eşleşen değerleri hem de geldikleri yolları gösterir, böylece sorguyu tam olarak istediğin şeyi döndürene kadar yineleyebilirsin.
Ne zaman kullanılır
- JSONPath kullanan bir araç için bir sorgu hazırlama: jq benzeri CLI yardımcı programları, Postman testleri, Stedi, n8n veya AWS CloudWatch / Step Functions.
- Script yazmadan büyük bir API yanıtından belirli alanları çekme.
- Bir array'i alan değerine göre filtreleme (örn. "total > 100 olan tüm orders").
- Derinlemesine iç içe bir yolun gerçekten bir değere çözüldüğünden emin olma — kodu bağlamadan önce.
Hızlı sözdizimi referansı
$— belgenin kökü..nameveya['name']— ada göre child...— recursive descent (herhangi bir derinlik).*— joker (herhangi bir özellik veya array elementi).[n]— array indeksi (negatif sondan sayar).[start:end:step]— array dilimi (Python stili).[a, b, c]— indeks veya ad birleşimi.[?(@.field > 5)]— filtre ifadesi.@= mevcut öğe;== != < > <= >= && ||ve=~ /regex/destekler.
Sık yapılan hatalar
- JSONPath'in tek bir resmi spec'i yoktur. Orijinal Stefan Gössner taslağı yıllarca de facto referans olmuştur; RFC 9535 (Şub 2024) sonunda standartlaştırdı. Uygulamalar biraz farklılaşır.
- Nokta - bracket.
$.foo-barparser'a "foo eksi bar" gibi görünür; tireli, noktalı veya boşluklu özellik adları için$['foo-bar']kullan. - Filtre ifadeleri burada JavaScript lehçeli — bu kasıtlı bir kolaylıktır ama RFC 9535'e tam uymaz. Bu aracın filtrelerinin başka bir uygulamada byte-aynı çalışmasına güvenme.
$..*ağaçtaki her node'u döndürür (depth-first), bu çok olabilir. Tanıdık olmayan bir belgeyi keşfetmek için kullanışlıdır.- Sayısal string'ler.
{"1": "a"}—$['1']ile erişim çalışır;$.1çalışmaz (sayılar nokta-özellik adları olarak geçerli değildir). - Sıralama. Nesne özellik sırası JSON tarafından garanti edilmez. Filtren sıraya bağlıysa önce sırala.