Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 8278|Atsakyti: 1

[JavaScript] Front-end JS išsprendžia JSON serializacijos tikslumo praradimo problemą

[Kopijuoti nuorodą]
Paskelbta 2022-02-13 14:37:43 | | | |
Reikalavimai: Aš sukūriau internetinį jwt analizės puslapį, kai jwt turinys yra ilgo tipo, naudojant numatytąjį JSON metodą analizei bus prarastas tikslumas, kaip parodyta paveikslėlyje žemiau:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiaXRzdnNlmNvbSIsImlkIjo4OTA2MTM1NDg4MDEwNzc5Mjg1fQ.7tJHcSfbpZkgqw0ALGSRxyqkz2-UxZPhO_12TuKNZus



JavaScript turi tik vieną skaičių tipą: skaičius, skaičius yra dvigubo tikslumo slankiojo kablelio skaičius, ir, skirtingai nuo daugelio kitų programavimo kalbų, JavaScript neapibrėžia skirtingų skaičių tipų, tokių kaip sveikieji skaičiai, trumpieji, ilgieji, slankiojo kablelio ir kt. Todėl "JavaScript" skaičiai nėra skirstomi į sveikųjų skaičių tipus ir slankiojo kablelio tipus, o visi skaičiai yra slankiojo kablelio tipai.

Išreiškiant sveikąjį skaičių, skaičius gali reikšti sveikųjų skaičių diapazoną nuo [−2 iki 53, 2 iki 253]. Nes skaičius turi 8 baitus ir 64 bitus, įskaitant 1 ženklo bitą, 11 eksponentinių bitų ir 52 mantijos skaitmenis.

Galite naudoti Number.MAX_SAFE_INTEGER ir Number.MIN_SAFE_INTEGER, kad peržiūrėtumėte didžiausius ir mažiausius saugos sveikuosius skaičius

Kai užpakalinė sąsaja grąžina ilgo tipo lauką, priekinė dalis naudoja JSON.parse(text), kad deserializuotų ekraną, o tai sukels rodymo klaidą, o sprendimas yra tas, kad užpakalinė sąsaja konvertuoja ilgo tipo lauką į eilutės tipą ir grąžina jį.

Lossless-JSON projektas, analizuojant JSON nerizikuojant prarasti skaitinę informaciją. "GitHub" adresas:Hipersaito prisijungimas matomas.

Visų pirmaKlonuokite projektą be nuostoliųNorėdami sukurti susietą ir sumažintą biblioteką (ES5, kompiuteris turi įdiegti node.js) ir pirmiausia įdiegti priklausomybes:

Tada sudarykite taip:



./dist/lossless-json.js Tai sugeneruos ES5 suderinamumo paketą, kurį galima vykdyti naršyklėje ir node.js.

Išbandyta per naršyklės konsolę taip:



Pakeiskite projekto kodą,Pristatykite lossless-json.js failus, iškviečiant LosslessJSON JSON serializavimui ir deserializavimui,Ištaisyta tikslumo praradimo problema, kaip parodyta toliau pateiktame paveikslėlyje:

let json = LosslessJSON.parse('{"foo":"bar"}'); {foo: 'bar'}
tegul tekstas = LosslessJSON.stringify(json);        '{"foo":"bar"}'



Testo adresas:Hipersaito prisijungimas matomas.

Galiausiai pridėkite sukompiliuotą lossless-json.js failą:
Turistai, jei norite pamatyti paslėptą šio įrašo turinį, prašomeAtsakyti

(Pabaiga)




Ankstesnis:[Tikroji kova]. NET/C# eksportuoja talpyklą naudodamas StackExchange.Redis neaiškią užklausą
Kitą:[Praktika] "Java" negali užfiksuoti pasirinktinių išimčių naudodama hutool atspindį
Paskelbta 2022-02-13 16:28:40 |
Ateikite mokytis dar kartą...
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com