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šome Atsakyti (Pabaiga) |