JSONPath Test Aracı

Bir JSON belgesi yapıştırın ve bir JSONPath sorgusu yazın. Eşleşme sayısını ve her eşleşme için normalleştirilmiş yolunu ile değerini alırsınız. Sorgu tarayıcınızda çalışır, hiçbir şey gönderilmez.

Ücretsiz Tarayıcınızda çalışır Kontrol: 10 Kasım 2026 Salı

Metin geçerli bir JSON olmalıdır. Örnek, RFC 9535 bölüm 1.5'teki kitapçı belgesidir.

$ kökü ile başlar. Filtrelerde test edilen öğe @ ile gösterilir, örneğin [[email protected] < 10]. Baştaki ve sondaki boşluklar yok sayılır.

Sonuç

Eşleşme sayısı — Sorgunun seçtiği düğüm sayısı. Sorgu bir düğümü tekrar ederse o düğüm birden fazla sayılır.
Eşleşmeler, sırasıyla

Bu araç tarayıcınızda çalışır. Girdiğiniz bilgiler bize gönderilmez.

Nasıl kullanılır?

  1. Örneği denemek için JSON belgesini JSON belgesi alanına yapıştırın ya da örneği olduğu gibi bırakın.
  2. JSONPath sorgusu alanına $ ile başlayan bir sorgu yazın. Filtreler köşeli parantez içinde yazılır: [[email protected] < 10].
  3. Eşleşme sayısını okuyun, sonra Eşleşmeler, sırasıyla tablosuna bakın: her satırda bir eşleşmenin yolu ve değeri vardır.
  4. Bir mesaj sorgudaki bir karakteri gösteriyorsa o karaktere bakın ve parantezi, tırnağı ya da noktayı düzeltin.

Sorgu düğümleri nasıl seçer

Bir sorgu $ işaretinden sonra gelen segmentlerin listesidir. .store ya da [0] gibi alt segmentler, ulaştıkları her düğümün çocuklarını seçer; ..author gibi tanımlayıcı segmentler düğümü ve bütün alt düğümlerini önce ziyaret eder. Bir segmentin düğümleri girdinin sırasıyla gelir ve bir dizi her zaman kendi sırasıyla okunur (RFC 9535, bölüm 2.5 ve 2.5.2.2).

Ad seçici yalnızca bir nesnedeki tam adla eşleşir. Negatif bir indeks diziyi sondan sayar; -1 son öğedir. [1:5:2] gibi bir dilim başlangıç, bitiş ve adım alır; adım 0 hiçbir şey seçmez (bölüm 2.3.4.2).

Filtreler, işlevler ve reddedilenler

Bir [?...] filtresi bir dizinin ya da nesnenin her çocuğunu test eder. Karşılaştırmalarda ==, !=, <, <=, > ve >= kullanılır; && , || ve ! testleri birleştirir, parantezler gruplar. Eksik bir üye Nothing'dir ve iki Nothing birbirine eşittir. Sayılar sayılarla, metinler metinlerle karşılaştırılır; farklı türden bir değer hiçbir zaman eşit değildir (bölüm 2.3.5.2).

length, count, value, match ve search işlevleri RFC 9535'in tanımladığı gibi desteklenir. match ve search, RFC 9485'in biçimi olan I-Regexp ile yazılmış bir düzenli ifade alır; geçerli bir I-Regexp olmayan bir kalıp hiçbir şeyle eşleşmez. Dizi ve nesne değişmezleri dilbilgisinde yoktur, bu yüzden araç bunları reddeder; RFC 9535 filtrede tek başına kullanılan bir işlev sonucunu tür açısından uygun bulmadığından, böyle bir kullanımı da reddeder.

Kitapçı örneği

Örnek belge ve $.store.book[[email protected] < 10].title sorgusuyla, 10'dan ucuz kitaplar birinci ve üçüncü kitaplardır. Aşağıdaki iki eşleşme bu kitapların başlıklarıdır; her birinin normalleştirilmiş yolu da gösterilir.

Normalleştirilmiş yol Değer (JSON)
$['store']['book'][0]['title'] "Sayings of the Century"
$['store']['book'][2]['title'] "Moby Dick"

Sık sorulan sorular

Anahtar varken sorgu neden hiçbir şey döndürmüyor?

Ad seçici yalnızca bir nesnenin tam olarak o adlı üyesiyle eşleşir ve karşılaştırma büyük küçük harfe duyarlıdır. Bir dizinin öğesiyle asla eşleşmez; dizi için indeks ya da joker kullanın.

Filtrede 13 ile "13" neden eşit değil?

RFC 9535, farklı türden değerleri eşit olmayan sayar (bölüm 2.3.5.3). Bir sayı ile bir metin farklı değerlerdir; karakterleri aynı görünse bile == yanlış, != doğrudur.

Negatif bir indeks neyi seçer?

Negatif indeks diziyi sondan sayar: -1 son öğe, -2 ondan önceki öğedir. Dizinin dışındaki bir indeks hiçbir şey seçmez ve hata değildir (bölüm 2.3.3.2).

Filtrede tek başına length(@) yazınca araç neden reddediyor?

length bir sayı döndürür, filtre ise doğru ya da yanlış bir test ister. Sonucu karşılaştırın, örneğin [?length(@.title) > 15]; bu tür olarak uygundur.

Araç JSON'umu bir sunucuya gönderiyor mu?

Hayır. Belgeyi tarayıcınız JSON.parse ile okur, sorgu da orada çalışır ve hiçbir şey saklanmaz. Sayfa ağ isteği yapmaz.

Kaynaklar

Rakamlar ve metin en son 10 Kasım 2026 Salı tarihinde kontrol edildi.

Sitenin çalışması için gerekli çerezleri kullanıyoruz. İzin verirseniz Google, size özel reklamlar göstermek için reklam çerezleri de kullanır. Reddederseniz yine reklam görürsünüz, ancak bu reklamlar kişiselleştirilmez.