Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 8278|Răspunde: 1

[JavaScript] Front-end JS rezolvă problema pierderii acurateței serializării JSON

[Copiază linkul]
Postat pe 13.02.2022 14:37:43 | | | |
Cerințe: Am creat o pagină online de analizare pentru jwt, iar când conținutul jwt are un text lung, folosirea metodei JSON implicite pentru analizare va duce la o pierdere de acuratețe, așa cum se vede în figura de mai jos:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiaXRzdnNlLmNvbSIsImlkIjo4OTA2MTM1NDg4MDEwNzc5Mjg1fQ.7tJHcSfbpZkgqw0ALGSRxyqkz2-UxZPhO_12TuKNZus



JavaScript are un singur tip de numere: Număr, Numărul este un număr cu dublă precizie în virgulă mobilă și, spre deosebire de multe alte limbaje de programare, JavaScript nu definește diferite tipuri de numere, cum ar fi numere întregi, scurte, lungi, în virgulă mobilă etc. Prin urmare, în JavaScript, numerele nu sunt împărțite în tipuri întregi și tipuri de virgulă mobilă, iar toate numerele sunt tipuri de virgulă mobilă.

Când se exprimă un număr întreg, Numărul poate reprezenta un interval întreg de la [−2 la puterea 53, 2 la puterea lui 253]. Pentru că Number are 8 octeți și 64 de biți, inclusiv 1 bit de semn, 11 biți exponențiali și 52 de cifre mantissă.

Poți folosi Number.MAX_SAFE_INTEGER și Number.MIN_SAFE_INTEGER pentru a vizualiza numerele întregi maxime și minime de siguranță

Când interfața backend returnează un câmp de tip lung, frontend-ul folosește JSON.parse(text) pentru a deserializa afișarea, ceea ce va cauza o eroare de afișare, iar soluția este că interfața backend convertește câmpul de tip lung în tip string și îl returnează.

proiectul lossless-json, analizând JSON fără riscul pierderii informațiilor numerice. Adresă GitHub:Autentificarea cu hyperlink este vizibilă.

În primul rândClonează proiectul lossless-jsonpentru a construi o bibliotecă agregată și minificată (ES5, PC-ul trebuie să instaleze node.js) și să instaleze mai întâi dependențele:

Apoi compilați astfel:



./dist/lossless-json.js Acesta va genera un pachet de compatibilitate ES5 care poate fi executat atât în browser, cât și în node.js.

Testat prin consola browserului după cum urmează:



Modifică codul proiectului,Introduceți lossless-json.js fișiere, apelând LosslessJSON pentru serializare și deserializare JSON,S-a rezolvat problema pierderii de acuratețe, așa cum se arată în figura de mai jos:

fie json = LosslessJSON.parse('{"foo":"bar"}'); {foo: 'bar'}
fie text = LosslessJSON.stringify(json);        '{"foo":"bar"}'



Adresa testului:Autentificarea cu hyperlink este vizibilă.

În final, atașează fișierul lossless-json.js compilat:
Turiști, dacă vreți să vedeți conținutul ascuns al acestei postări, vă rogRăspunde

(Sfârșit)




Precedent:[Luptă propriu-zisă]. NET/C# exportă cache-ul folosind interogarea fuzzy StackExchange.Redis
Următor:[Practică] Java nu poate detecta excepțiile personalizate folosind reflecția hutool
Postat pe 13.02.2022 16:28:40 |
Să învețe din nou...
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com