Gereksinimler: jwt için çevrimiçi bir ayrıştırma sayfası oluşturdum; jwt içeriği uzun bir tipe sahipse, varsayılan JSON yöntemiyle ayrıştırmak doğruluk kaybına yol açar, aşağıdaki şekilde gösterildiği gibi:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiaXRzdnNlLmNvbSIsImlkIjo4OTA2MTM1NDg4MDEwNzc5Mjg1fQ.7tJHcSfbpZkgqw0ALGSRxyqkz2-UxZPhO_12TuKNZus
JavaScript'in yalnızca bir sayı türü vardır: Sayı, Sayı, çift hassasiyetli bir kayan nokta sayısıdır ve birçok diğer programlama dilinin aksine, JavaScript tam sayı, kısa, uzun, kayan nokta gibi farklı sayı türlerini tanımlamaz. Bu nedenle, JavaScript'te sayılar tam sayı tiplerine ve kayan nokta tiplerine ayrılmaz ve tüm sayılar kayan nokta tipleridir.
Bir tam sayı ifade edilirken, Sayı [−2'den 53'ün kuvvetine, 2'den 253'ün kuvvetine] tam sayı aralığını temsil edebilir. Çünkü Number 8 bayt ve 64 bitten oluşur; bunlar arasında 1 işaret biti, 11 üstel bit ve 52 mantissa hanesi bulunur.
Number.MAX_SAFE_INTEGER ve Number.MIN_SAFE_INTEGER kullanarak maksimum ve minimum güvenlik tam tamlarını görebilirsiniz。
Arka uç arayüzü uzun bir alan döndürdüğünde, ön uç JSON.parse(text) kullanarak ekranı serilikten çıkarmamıştır; bu da görüntüleme hatasına yol açar ve çözüm, arka uç arayüzünün uzun türdeki alanı string tipine dönüştürüp geri döndürmesidir.
kayıpsız-json projesi, sayısal bilgiyi kaybetme riski olmadan JSON'u ayrıştırıyor. GitHub adresi:Bağlantı girişi görünür.
Her şeyden önceKayıpsız-json projesini klonlapaketlenmiş ve küçültülmüş bir kütüphane oluşturmak (ES5, PC'nin node.js kurması gerekir) ve önce bağımlılıkları kurmak:
Sonra aşağıdaki gibi derleyin:
./dist/lossless-json.js Bu, tarayıcıda çalıştırılabilen bir ES5 uyumluluk paketi oluşturacak ve node.js.
Tarayıcı konsolu üzerinden şu şekilde test edildi:
Proje kodunu değiştirin,lossless-json.js dosyalarını tanıtın, JSON serileştirme ve serilikten çıkarma için LosslessJSON'u çağırıyor,Doğruluk kaybı sorunu düzeltildi, aşağıdaki şekilde gösterildiği gibi:
let json = LosslessJSON.parse('{"foo":"bar"}'); {foo: 'bar'} let text = LosslessJSON.stringify(json); '{"foo":"bar"}'
Test adresi:Bağlantı girişi görünür.
Son olarak, derlenmiş lossless-json.js dosyasını ekleyin:
Turistler, bu gönderinin gizli içeriğini görmek isterseniz lütfen Yanıt (Son) |