JSON Sorgu

JSON'dan JSONPath ifadeleri veya RFC 6901 JSON Pointer ile değer çıkarın

JSON

Sorgu

JSON Sorgu

JSON'dan JSONPath ifadeleri veya RFC 6901 JSON Pointer ile değer çıkarın

Özellikler

  • İki sorgu modu yan yana: JSONPath (paylaşılan QueryService destekli, joker ve köşeli parantez erişimi) ve RFC 6901 JSON Pointer (eğik çizgili, ~0/~1 kaçışlı) — mevcut araçlarınızla eşleşen söz dizimini seçin
  • Herhangi bir yol bölümünde joker `*` o seviyedeki tüm nesne anahtarlarına veya dizi elemanlarına genişler — `$.store.books[*].title` döngü yazmadan her kitap başlığını döndürür
  • Her eşleşme hem somut yolu hem değeri ile gösterilir: sonuçlar tek bir cevap değil, yol listesidir — joker genişletmesi tek tek veya toplu kopyalayabileceğiniz N satır üretir
  • JSON Pointer modu bölüm sözdizimini doğrular: `/` ile başlar, tamsayı bölümleri dizileri indeksler, adlı bölümler nesneleri indeksler, `~1` `/`'a, `~0` `~`'ye çözülür — JSON Schema instancePath ve JSON Patch ile aynı semantik
  • Eşleşme başına kopya düğmesi değeri panoya yazar (dizeler ham, yapılar pretty-print JSON) ve Tümünü kopyala tam `yol: değer` listesini düz metin olarak verir
  • Ayrıştırma hataları ve sorgu hataları JS motorunun tam mesajıyla ayrı yüzeye çıkar; JSON'unuzun mu yoksa ifadenizin mi sorunlu olduğunu anında bilirsiniz
  • Örnek Yükle aktif mod için çalışan bir sorguyla küçük bir kitapçı belgesi doldurur — sözdizimi için faydalı bir ilk-bakış referansı
  • Tamamen istemci tarafı: JSON, ifadeler ve sonuçlar tarayıcıdan ayrılmaz; sayfa önbelleğe alındıktan sonra çevrimdışı çalışır

Nasıl Kullanılır

  1. Sorgulamak istediğiniz JSON belgesini sol metin alanına yapıştırın.
  2. Bir sorgu modu seçin: JSONPath (jokerlerle seçiciler için iyi) veya JSON Pointer (tek bir düğümü kesin adlandırmak için iyi).
  3. İfadeyi sorgu alanına yazın — her mod için örnekler yer tutucuda gösterilir.
  4. Sorguyu Çalıştır'a basın veya sorgu alanında Enter'a basın. Eşleşmeler somut yolları ve değerleriyle görünür; sayaç kaç tane bulunduğunu gösterir.
  5. Her eşleşmenin yanındaki simgeyle bireysel değerleri kopyalayın veya tam `yol: değer` listesini almak için Tümünü kopyala'yı kullanın.
  6. Söz dizimine yeniyseniz çalışan bir örnek için Örnek Yükle'yi kullanın.

İpuçları ve En İyi Uygulamalar

  • JSON'unuzda bir anahtarın olup olmadığından emin değilseniz önce gerçekte ne olduğunu listelemek için joker kullanın, sonra daraltın.
  • JSON Pointer yolları dize olarak sıralanabilir — iki yapı arasında yol kümelerini karşılaştırmak istediğinizde kullanışlıdır.
  • Bir sorgu bir eşleşme döndürürse ama birden çok beklediyseniz, yazım hatalarını kontrol edin (`book` vs `books`) — JSONPath burada bulanık eşleşme değil, tam anahtar eşleşmesi döndürür.
  • Derin iç içe veri için JSON Pointer JSONPath'ten daha kısadır çünkü `$` ve `.` ayırıcıları taşımaz — sohbet veya commit mesajlarında kullanışlıdır.
  • Önce görsel olarak gezinmek için JSON Ağacı ile birleştirin, sonra bilinen iyi bir pointer'ı bu araca yeniden kullanmak üzere kopyalayın.

SSS

Hangi JSONPath söz dizimi destekleniyor?

Asgari ama kullanışlı alt küme: `$` kök, `.key` üye erişimi, `['key']` tırnaklı üye erişimi (noktalı veya özel karakterli anahtarlar için), `[N]` dizi indeksi ve `*` joker. Filtre ifadeleri (`[?(@.price < 30)]`), torun operatörü (`..`) ve dilimleme (`[1:3]`) burada desteklenmez — bunlar için daha zengin bir motora sahip JSON Formatter aracının JSONPath sekmesini kullanın.

JSONPath ile JSON Pointer arasındaki fark nedir?

JSONPath bir sorgu dilidir (JSON için XPath) — joker, torunlar ve yüklemler aracılığıyla birden çok düğüm seçebilir. JSON Pointer (RFC 6901) bir yol gösterimidir — kesin OLARAK BİR düğüm adlandırır ve ya vardır ya yoktur. Sonuç KÜMESİ istediğinizde JSONPath kullanın; tek belirli konum istediğinizde JSON Pointer kullanın (örn. JSON Patch veya şema doğrulayıcıdan başarısız instancePath'i kopyalamak için).

Neden her iki moda da ihtiyacım var?

Farklı araçlar ve standartlar farklı gösterimler kullanır. JSON Schema instancePath hataları JSON Pointer'dır. fast-json-patch JSON Pointer kullanır. JSONPath çoğu JSON sorgu CLI aracı ve birçok kütüphanenin beklediğidir. Burada her iki modun olması, yolları araçlar arasında yeniden yazmadan kopyalayabilmenizi sağlar.

Özel karakterli anahtarlar nasıl ele alınır?

JSONPath: köşeli parantez içinde tırnak — `$['weird.key']` tam adı `weird.key` olan anahtara erişir. JSON Pointer: RFC 6901'e göre kaçış — anahtardaki `/` `~1`, `~` `~0` olur. Yer tutucu her mod için standart formu gösterir.

Yol hiçbir şeyle eşleşmezse ne olur?

0 eşleşme sonucu ve hata yerine "Sorgu hiç eşleşme döndürmedi" notu alırsınız. Bu normal JSONPath / JSON Pointer kuralıdır: eksik yollar yokluktur, başarısızlık değil. Yokluğu bozuk girdiden ayırt etmek için hata satırının görünüp görünmediğine bakın.

Joker karakterler iç içe dizilere inebilir mi?

Evet, her seviyede. `$.users[*].roles[*]` önce tüm kullanıcılara, sonra her kullanıcının rollerine genişler ve her rol dizesini üretir. Çıktı tablosu her eşleşmenin çözümlenmiş somut yolunu gösterir (örn. `$.users[0].roles[2]`); bir isabetin tam olarak nereden geldiğini bilmek istediğinizde faydalıdır.

Sunucuya bir şey gönderiliyor mu?

Hayır. JSON.parse tarayıcınızda çalışır, JSONPath / JSON Pointer değerlendirmesi tarayıcınızda çalışır ve eşleşmeler ağ çağrısı olmadan sayfaya render edilir. Sorguyu Çalıştır'a bastığınızda DevTools'taki Ağ sekmesi hiçbir şey göstermez.

Bunun JSON Formatter'ın sorgu sekmesinden farkı nedir?

JSON Formatter çok-araçlıdır: format, doğrulama, şema kontrolü, JSONPath, diff. Bu bağımsız JSON Sorgu minimum arayüzdür: bir URL, iki mod, eşleşme başına kopya ile sonuç-liste, ek yüzey alanı yok. Birkaç JSON iş akışını birleştiren tek görünüm istediğinizde Formatter'ı kullanın; sadece değer çıkarmak istediğinizde bunu kullanın.