UTILS.
%100 tarayıcıda
{ }

JS Nesnesinden Katı JSON'a

Gevşek bir JavaScript nesne değişmezini — tırnaksız anahtarlar, tek tırnaklar, sondaki virgüller, yorumlar — eval olmadan katı geçerli JSON'a onarın.

— çıktı burada görünür —

Bu araç hakkında

JS Nesnesinden Katı JSON'a aracı, gevşek bir JavaScript veya JSON5 tarzı nesne değişmezini katı, geçerli JSON'a onarır. Elle yazılmış bir tokenizer üzerine kuruludur — asla eval veya new Function kullanmaz — bu yüzden katı bir İçerik Güvenliği Politikası altında güvenlidir ve güvenilmeyen metin yapıştırmak için güvenlidir. Her şey tarayıcınızda çalışır.

Gerçek JSON'un reddettiği şeyleri kabul eder: tırnaksız tanımlayıcı anahtarlar, tek tırnaklı dizeler, ] veya } öncesindeki sondaki virgüller, // satır ve /* blok */ yorumları, onaltılık (0xFF), sekizlik ve ikilik değişmezler, baştaki artı ve baştaki nokta sayıları (+1, .5) ve undefined, NaN ve Infinity değerleri. Anahtarlar çift tırnakla yeniden tırnaklanır, dizeler doğru şekilde yeniden kaçışlanır, yorumlar ve sondaki virgüller çıkarılır ve sayılar düz JSON sayılarına normalleştirilir. undefined'ı (null'a dönüştür veya anahtarı at) ve sonsuz olmayan sayıları (null'a dönüştür veya hata yükselt) nasıl ele alacağınızı seçersiniz, sonra değer seçtiğiniz girintide JSON.stringify ile yeniden serileştirilir — 2 boşluk, 4 boşluk, sekme veya küçültülmüş.

Girdi ayrıştırılamadığında, araç ilk sözdizimi hatasını satır ve sütunuyla bildirir, böylece sorunu hızlıca bulabilirsiniz. Bu, gevşek girdiyi basitçe reddeden katı bir JSON biçimlendiriciyi tamamlar — burada amaç, kopyalanan konsol çıktısını, yapılandırma parçacıklarını ve elle düzenlenmiş nesneleri herhangi bir ayrıştırıcının kabul edeceği JSON'a kurtarmaktır.

Sık sorulan sorular

Hangi gevşek sözdizimini kabul eder?
Tırnaksız anahtarlar, tek tırnaklı dizeler, sondaki virgüller, // ve /* */ yorumları, onaltılık/sekizlik/ikilik sayılar, baştaki artı ve baştaki nokta sayıları ve undefined, NaN ve Infinity değişmezleri — kopyalanan JS nesnelerini JSON olarak geçersiz kılan yaygın şeyler.
Ayrıştırmak için eval kullanır mı?
Hayır. Elle yazılmış bir tokenizer ve özyinelemeli-iniş ayrıştırıcı kullanır, asla eval veya new Function değil, bu yüzden katı bir İçerik Güvenliği Politikası altında çalışır ve güvenilmeyen girdi için güvenlidir. Yalnızca veri üretir, asla kod çalıştırmaz.
undefined, NaN ve Infinity nasıl işlenir?
JSON'da böyle değerler yoktur. Siz seçersiniz: undefined null olabilir veya anahtarı atılabilir, NaN/Infinity null olabilir veya hata yükseltebilir. Bu, çıktıyı her iki durumda da katı biçimde geçerli JSON tutar.
Girdi geçersiz olduğunda ne olur?
Ayrıştırıcı ilk gerçek sözdizimi hatasında durur ve gerçekleştiği satır ve sütunla bildirir, böylece tahmin etmek yerine hatalı karakteri bulup düzeltebilirsiniz.

Daha fazla araç