JSONPath Test Aracı
Bir JSON belgesini yapıştırın ve $..book[?(@.price<10)] gibi bir JSONPath ifadesi girin. Test aracı bu ifadeyi belge üzerinde değerlendirir ve eşleşen tüm değerleri ile her bir eşleşmenin tam yolunu gösterir. Bu özellik, bir betik veya API spesifikasyonuna (Postman, k6, JMeter gibi araçlar JSONPath kullanır) yapıştırmaya hazırladığınız sorguyu doğrulamak için oldukça faydalıdır.
JSONPath ifadesi nasıl test edilir
-
1
JSON belgesini yapıştırın
Herhangi bir geçerli JSON, nesne, dizi veya derin şekilde iç içe yerleştirilmiş yapıda.
-
2
İfadeyi yazın
Kök için `$` ile başlayın; alt düğüm için `.`, özyinelemeli inme için `..` ve joker için `[*]` kullanın.
-
3
Eşleşmeleri canlı olarak görün
Her eşleşme, değeri ve tam JSONPath yolu ile birlikte, orijinal belgede vurgulanmış şekilde gösterilir.
-
4
Sonuçları kopyalayın
Eşleşmeleri bir JSON dizisi olarak kopyalayın veya her bir yolu sonraki kodda kullanmak üzere ayrı ayrı kopyalayın.
JSONPath sözdizimi referansı
| İfade | Anlam |
|---|---|
$ |
Kök öğe |
$.store |
$ öğesinin store adlı alt öğesi |
$["store"] |
Aynısı, köşeli parantez biçimi |
$..author |
Her derinlikteki tüm author özellikleri |
$.store.book[*] |
Mağazadaki tüm kitaplar |
$.store.book[0] |
İlk kitap |
$.store.book[-1:] |
Son kitap |
$.store.book[0:2] |
İlk iki kitap (dilim) |
$.store.book[?(@.isbn)] |
isbn özelliği olan kitaplar |
$.store.book[?(@.price < 10)] |
Fiyatı 10’un altındaki kitaplar |
$.store.book[?(@.category == "fiction")] |
Kurgu kitapları |
$..* |
Her yerdeki her değer |
Filtre ifadeleri
Filtre ifadeleri, geçerli düğümü belirtmek için @ kullanır. Test aracı, yaygın operatörler ==, !=, <, >, <=, >=, &&, || ve regex =~ operatörünü destekler.
$.items[?(@.qty >= 10 && @.price < 50)]
JSONPath lehçeleri
Küçük uyumsuzluklara sahip birkaç JSONPath uygulaması mevcuttur. Bu test aracı, Goessner’ın orijinal spesifikasyonunu ve RFC 9535’teki iyileştirmeleri temel alır ve aşağıdaki sistemlerle uyumludur:
- Jayway JsonPath (Java)
- jsonpath-plus (JavaScript)
- jsonpath-rw (Python)
- jq temel yol ifadeleri
Uyumsuz özellikler (örneğin keyfi JS içeren betik ifadeleri) hata panelinde işaretlenir.
JSONPath tam bir ayrıştırıcıyı ne zaman geride bırakır
- Test doğrulamaları: Postman’ın
pm.expect(jsonData).to.have.jsonPath(...)ifadesi bir yol alır. - Yapılandırma çıkarımı: Bir kütüphane kullanmadan devasa bir API yanıtından tek bir değer çıkarın.
- Yük testi betikleri: k6, JMeter ve Gatling, denetimler için JSONPath’i destekler.
- Kubernetes / AWS CLI:
--queryve--jsonpathbayrakları, komut satırından çıktıyı şekillendirmenize olanak tanır.
Yaygın hatalar
- Bir dizide
.kullanmak.$.users.0.nameyanlıştır;$.users[0].namekullanın. - Derinlik için
..kullanmayı unutmak.$.namegibi bir yol yalnızca üst düzeynameile eşleşir; hepsini bulmak için$..namekullanın. - JSONPath’i jq ile karıştırmak. jq, kontrol akışı ve dönüşümler içeren bir üst kümedir; JSONPath ise tamamen veri çıkarma amacıyla kullanılır.
- Regex sabitleme.
=~ /foo/alt dizilerle eşleşir; tam eşleşme için/^foo$/kullanın.
Sık Sorulan Sorular
JSONPath; seçim, filtreleme ve kesme işlemlerini içeren saf bir çıkarım dilidir. jq ise kontrol akışı, değişkenler ve fonksiyonlar içeren tam kapsamlı bir sorgulama ve dönüşüm dilidir. Basit çıkarım için JSONPath daha taşınabilirdir; dönüşümler için ise jq kullanılmalıdır.
Goessner’ın orijinal spesifikasyonu ile RFC 9535’te yapılan iyileştirmeler birleştirilmiştir ve bu yapı Jayway JsonPath (Java) ile jsonpath-plus (Node) ile uyumludur. Lehçeye özgü genişletmeler (keyfi kod içeren betik ifadeleri) desteklenmez.
Evet. $..book[?(@.title =~ /^Harry.*/)], başlığı “Harry” ile başlayan tüm kitapları eşleştirir. Tam eşleşme için ^ ve $ kullanın.
Evet. Hem JSON hem de JSONPath değerlendiricisi tarayıcınızda çalışır. Belgeniz ve sorgularınız asla bu sekmenin dışına çıkmaz.
İlgili Araçlar
FPS Sayacı
requestAnimationFrame ile tarayıcı FPS değerini ölçün: yumuşatma, en düşük ve en yüksek kare hızı, uyarı eşiği ve isteğe bağlı grafik. Yerel çalışır, yükleme ve API yoktur.
Webpack Yapılandırma Oluşturucu
Kısa bir formdan webpack 5 için bir webpack.config.js oluşturun: entry, çıkış klasörü ve modu ayarlayın; ardından TypeScript, Babel, bir CSS yükleyici, HtmlWebpackPlugin ve bir dev sunucu açın.
Dosya Boyutu Dönüştürücü
Bayt, KB, MB, GB, TB ve ikili IEC birimleri (KiB, MiB, GiB, TiB) arasında, ondalık ve ikiliyi dilediğiniz gibi birleştirerek dönüşüm yapın.
Kurgusal telefon numarası oluşturucu
Beş ülkede resmen ayrılmış aralıklardan 50 adede kadar kurgusal numara üretin.
Telefon numarası doğrulayıcı
Telefon numarasının ülkeye göre yapısını denetleyin; bölge, tür, E.164, uluslararası, ulusal ve RFC 3966 biçimlerini görün.
Rastgele adres oluşturucu
Arayüz maketleri ve testler için üç basitleştirilmiş biçimde 1–20 adres benzeri kayıt oluşturun.
Araç diğer dillerde mevcuttur
- Testeur JSONPath [FR]
- Công cụ kiểm thử JSONPath [VI]
- JSONPath-testare [SV]
- JSONPath テスター [JA]
- Tester JSONPath [PL]
- Probador de JSONPath [ES]
- JSON Path Tester [NL]
- Testador de JSONPath [PT]
- เครื่องมือทดสอบ JSON Path [TH]
- JSON Path Tester [ID]
- JSONPath 테스터 [KO]
- أداة اختبار مسارات JSON (JSONPath) [AR]
- JSONPath-Tester [DE]
- JSONPath Tester [EN]
- Tester JSONPath [IT]
- JSONPath Tester [RU]
- JSON路径测试器 [ZH]