JSON Biçimlendirici ve Doğrulayıcı Pro

JSON'u tamamen tarayıcınızda biçimlendirin, doğrulayın, sorgulayın, karşılaştırın ve dönüştürün

Giriş JSON

Girinti

Biçimlendirilmiş Çıktı

Biçimlendirilmiş çıktı burada görünecek

JSON Biçimlendirici, Doğrulayıcı, JSONPath, Diff ve Şema — onDevTools

JSON'u tamamen tarayıcınızda biçimlendirin, doğrulayın, sorgulayın, karşılaştırın ve dönüştürün. RFC 8259 sıkı ayrıştırıcı ve JSONC modu, JSON Schema Draft 2020-12 doğrulaması, RFC 9535 JSONPath, JSON Merge Patch ile derin diff ve düzleştirme / geri yapılandırma / null kaldırma dönüşümleri — yükleme yok, izleme yok.

Özellikler

  • Yapılandırılabilir girintiyle (2, 4, 8 boşluk) ve isteğe bağlı alfabetik anahtar sıralamasıyla JSON'u güzel basın ve küçültün
  • Sıkı RFC 8259 / ECMA-404 ayrıştırıcısı ile birlikte // ve /* */ yorumlarını ve sondaki virgülleri kabul eden esnek bir JSONC modu
  • Tam metin araması, tümünü genişletme/daraltma ve düğüm başına değer veya JSON Pointer yolu kopyalama özelliklerine sahip etkileşimli, daraltılabilir ağaç görünümü
  • type, required, enum, pattern, min/max, oneOf/anyOf/allOf, additionalProperties ve dizi öğesi ihlallerini tam örnek yollarıyla raporlayan JSON Schema doğrulayıcısı (Draft 2020-12)
  • Joker karakterleri, özyinelemeli inişi (..), dizi dilimlemeyi ve $[?(@.price > 10)] gibi filtre ifadelerini destekleyen JSONPath sorgu motoru (RFC 9535)
  • Yan yana derin diff: eklenen / kaldırılan / değiştirilen / değişmeyen segmentler renk kodlu; ayrıca diff çıktısını kopyalama veya indirme
  • Dönüşüm ardışık düzeni: nokta gösterimine düzleştirme, geri yapılandırma, null'ları kaldırma, boş dizeleri/dizileri/nesneleri kaldırma ve işlemleri zincirleme
  • JSON istatistik panosu: toplam öğeler, nesne/dizi sayıları, tür dağılımı ve maksimum yuvalama derinliği
  • Ayrıştırıcıdan satır ve sütunla satır içi hata raporlama ve hata bir yorum ya da sondaki virgül sorununa benziyorsa JSONC modunu etkinleştirme önerileri
  • Biçimlendirilmiş, küçültülmüş, şema veya diff çıktıları için tek tıkla kopyalama veya indirme
  • Tamamen istemci tarafında çalışır — JSON, şemalar ve diff girişleri tarayıcınızdan asla ayrılmaz

Nasıl Kullanılır

  1. JSON'unuzu Giriş JSON paneline yapıştırın veya bırakın — siz yazarken otomatik biçimlendirme tetiklenir ya da açık bir geçiş için Biçimlendir'e tıklayın.
  2. Bir yapılandırma dosyası veya VS Code ayarlarında ayrıştırma başarısız olursa, yorumlara ve sondaki virgüllere izin vermek için JSONC anahtarını açın ve yeniden çalıştırın.
  3. Derin iç içe geçmiş yapıları keşfetmek için Ağaç görünümüne geçin; eşleşen anahtarları veya değerleri vurgulamak için arama kutusunu kullanın ve herhangi bir düğümün yolunu veya değerini kopyalayın.
  4. Şema Doğrulama sekmesini açın, bir JSON Schema belgesi yapıştırın ve Doğrula'ya tıklayın — her ihlal, başarısız olan anahtar kelimeyi ve hatalı değerin JSON Pointer yolunu gösterir.
  5. İki JSON belgesini karşılaştırmak ve patch'i başka bir yerde uygulanmaya hazır bir JSON Merge Patch olarak kopyalamak için Diff Karşılaştırma sekmesini kullanın.
  6. $.store.book[?(@.price < 10)].title gibi ifadelerle belgenin parçalarını çıkarmak veya filtrelemek için JSONPath Sorgusu sekmesini kullanın.
  7. Düzleştirmek, geri yapılandırmak veya null'ları kaldırmak için Dönüşümler sekmesini kullanın; güncellenen girdide yeniden çalıştırarak dönüşümleri zincirleyin, ardından sonucu kopyalayın veya indirin.

İpuçları ve En İyi Uygulamalar

  • 'Unexpected token /' veya 'Unexpected token ,' gördüğünüz an JSONC'yi açın — bu neredeyse her zaman yorumları veya sondaki virgülü olan bir yapılandırma dosyasıdır.
  • PR diff'lerini minimumda tutmak için JSON yapılandırma dosyalarını commit'lemeden önce Anahtarları sırala'yı kullanın.
  • Hata raporunuza veya PR açıklamanıza belirli bir düğüme derin bağlantı bırakmak için Ağaç görünümünden JSON Pointer yolunu kopyalayın.
  • 64-bit bir ID 1234567890123456800 olarak görüntüleniyorsa, üreticiniz onu sayı olarak yayıyordur — API'yi ID'leri dize olarak gönderecek şekilde değiştirin.
  • HTTP istek gövdeleri için mümkün olan en küçük yükü üretmek üzere Null'ları Kaldır → Küçült → Kopyala'yı zincirleyin.

SSS

JSON'umu saklıyor musunuz?

Hayır. Ayrıştırma, doğrulama, şema kontrolleri, diff'leme ve dönüşümlerin tümü tarayıcınızda yerel JavaScript ve Web Crypto / DOM API'leri kullanılarak çalışır — hiçbir şey yüklenmez. Bu, API yanıtlarını, yapılandırma dosyalarını veya üretim sistemlerinden hassas yükleri yapıştırmayı güvenli hale getirir.

Ayrıştırıcı hangi JSON spesifikasyonunu izliyor?

Sıkı mod, JSON için IETF ve ECMA standartları olan RFC 8259 / ECMA-404'ü izler. JSONC modu (JSONC anahtarını açın), VS Code'un settings.json, tsconfig.json ve benzer yapılandırma dosyalarında kullanılan yorum ve sondaki virgül uzantılarını ekler. JSON5 (ör. tırnaksız anahtarlar, tek tırnaklar, hex sayılar) şu anda desteklenmiyor — girdiniz bu biçimleri gerektiriyorsa bir JSON5 ayrıştırıcısı kullanın.

JSON Schema doğrulayıcı neyi destekler?

Doğrulama, type, required, enum, pattern, format, minimum/maximum, minLength/maxLength, minItems/maxItems, additionalProperties, items, prefixItems, oneOf/anyOf/allOf, $ref ve koşullu if/then/else'in tam kapsamıyla JSON Schema Draft 2020-12'ye karşı çalışır. Her ihlal, başarısız olan anahtar kelimeyi ve hatalı değere giden JSON Pointer yolunu raporlar; böylece tüm örneği taramadan derin iç içe sorunları tam olarak belirleyebilirsiniz.

Hangi JSONPath ifadeleri destekleniyor?

Sorgu motoru RFC 9535 yüzeyini uygular: kök ($), alt segment ($.key, $['key']), dizi indeksi ve dilimi ([0], [0:3]), joker karakterler ([*]), özyinelemeli iniş (..) ve karşılaştırma, regex ve mantıksal işleçlerle filtre ifadeleri (ör. $[?(@.price > 10 && @.in_stock == true)]). Birden çok sonuç bir dizi olarak döndürülür; değerler belge sırasına göre çıkarılır.

JSONC ile JSON5 arasındaki fark nedir?

JSONC, düz JSON'a ek olarak // satır yorumları, /* */ blok yorumları ve sondaki virgüllerdir — insan tarafından düzenlenen yapılandırma dosyaları için popülerdir. JSON5 ise ayrıca tırnaksız anahtarlara, tek tırnaklı dizelere, hex/baştan ondalıklı sayılara ve NaN/Infinity'ye izin veren bir üst kümedir. Bu araç JSONC'yi destekler; JSON5 girdisi için önce dönüştürmeniz veya bir JSON5 ayrıştırıcısı kullanmanız gerekir.

Çok büyük JSON dosyalarını biçimlendirebilir miyim?

Evet, ancak ağaç görünümü ve JSONPath motoru düğüm sayısıyla yaklaşık doğrusal olarak ölçeklenir; bu nedenle ~1 MB / ~50.000 düğümün üzerinde arayüz fark edilir şekilde yavaşlar. Büyük yükler için Ağaç yerine Düz görünümünü kullanın, yalnızca kompakt çıktıya ihtiyacınız varsa önce Küçült dönüşümünü çalıştırın veya belgeyi üst düzey anahtara göre bölün. Akış (streaming) ve JSON Lines (.jsonl) kapsam dışıdır — bunlar için jq gibi bir CLI kullanın.

Bu, jq, jsonlint veya VS Code'un yerleşik biçimlendiricisiyle nasıl karşılaştırılır?

jq, betikli işlem hatları ve akış için yenilmezdir; jsonlint ise sıkı doğrulamayı kapsar. Bu aracın avantajı, her şeyi tek bir yerde yapmasıdır — biçimlendirme + doğrulama + şema kontrolü + JSONPath + derin diff + dönüşümler — tarayıcıdan ayrılmadan. VS Code'un yerleşik biçimlendiricisi güzel basmayı yapar ancak şema farkındalı hata yollarını, JSONPath'i veya diff/merge'i yönetmez.

Ayrıştırıcı bir yapılandırma dosyasında neden 'Unexpected token' diyor?

Ayrıştırıcı varsayılan olarak sıkıdır; bu nedenle // yorumları, /* */ blokları ve sondaki virgüllerin tümü, hatalı karakteri işaret eden bir hata üretir. Hata deseni bu özelliklerden biriyle eşleştiğinde durum paneli, JSONC modunu otomatik olarak etkinleştirmeyi önerir. Mesaj tamamen tırnak içindeki bir dizeyi işaret ediyorsa, kaçışsız ters eğik çizgileri veya kontrol karakterlerini iki kez kontrol edin — bunlar diğer yaygın suçlulardır.

Girintiyi ve anahtar sırasını özelleştirebilir miyim?

Evet. Girinti kontrolünde 2, 4 veya 8 boşluk seçin ve nesne anahtarlarını alfabetik sırada yaymak için Anahtarları sırala'yı açın — kararlı diff'ler ve yeniden üretilebilir yapılandırma dosyaları için kullanışlıdır. Çıktı her zaman yeni satırla ayrılmış satırlarla UTF-8'dir (BOM yok); biçimlendirici dizi öğelerini asla yeniden sıralamaz çünkü bu anlamı değiştirirdi.

Hangi dönüşüm işlemleri kullanılabilir?

Düzleştir, nokta gösterimli anahtarlar bekleyen araçlar için (env değişkenleri, özellik bayrakları) {a:{b:1}}'i {"a.b":1}'e dönüştürür. Geri yapılandır bunu tersine çevirir. Null'ları Kaldır tüm null değerli özellikleri özyinelemeli olarak kaldırır, Boşları Kaldır ayrıca boş dizeleri, []'leri ve {}'ları da düşürür ve Küçült tek satırlı bir çıktı üretir. Dönüşümler mevcut girdiye uygulanır, böylece ardışık düzenler oluşturmak için bunları zincirleyebilirsiniz.

Araç, JSON Pointer yollarını çıkarmayı destekliyor mu?

Evet. Ağaç görünümünde herhangi bir düğümün üzerine geldiğinizde, tek tıkla kopyalayabileceğiniz JSON Pointer (RFC 6901) yolu — ör. /store/book/0/author — ortaya çıkar. JSON Pointer, şema ve diff sonuçlarının konumları tanımlamak için kullandığı aynı gösterimdir; böylece bir paneldeki yolu diğerine yapıştırarak aynı değere gidebilirsiniz.

Biçimlendirilmiş bir sonucu bir takım arkadaşıyla paylaşabilir miyim?

En hızlı yol, JSON'u onun makinesine yapıştırmaktır — bağlantı paylaşacak hiçbir sunucu tarafı durum yoktur. Permalink benzeri bir teslim gerekiyorsa, küçültülmüş çıktıyla bir Gist veya yapıştırma servisi kullanın. Her halükârda, istemci tarafında bile token, sır veya PII paylaşmaktan kaçının; çünkü alıcı takım arkadaşının panosu veya konsolu bunları kalıcı olarak saklayabilir.

Unicode'u ve büyük sayıları doğru şekilde işliyor mu?

Tüm girdi UTF-8 olarak ele alınır ve vekil çiftler (emoji, CJK karakterleri) kaçışsız olarak gidip gelir. Number.MAX_SAFE_INTEGER (2^53 − 1) üzerindeki sayılar hassasiyet kaybeder çünkü temel ayrıştırıcı IEEE-754 double'ları kullanır — bu bir araç sınırlaması değil, bir JSON spesifikasyon tuhaflığıdır. 64-bit ID'ler taşıyorsanız, çoğu API'nin yaptığı gibi onları dize olarak gönderin.