JSON formatter ja validaator
Kleepige JSON ülalolevale väljale ja see JSON formatter ja validaator kontrollib seda juba kirjutamise ajal. Kehtiv sisend vormindatakse valitud taandega loetavaks või minimeeritakse üheks reaks. Kehtetu sisendi korral näete täpset veateadet koos rea ja veeruga, esiletõstetud lõiku ning tavaliste vigade puhul ühe klõpsuga parandust. Kõik töötab teie brauseris, nii et API vastused, konfiguratsioonifailid ja ekspordid ei lahku teie arvutist.
Mida see JSON formatter teeb
- Vormindab JSON-i loetavaks 2 tühiku, 4 tühiku või tabulaatoriga. Väljund säilitab võtmete algse järjekorra, kui te ei märgi valikut Sorteeri võtmed.
- Minimeerib JSON-i, eemaldades kõik tühikud ja reavahetused. Suuruse näit tulemuse all näitab, mitu baiti säästsite.
- Valideerib JSON-i reaalajas vastavalt standardile RFC 8259, mis on JSON-i kehtiv standard. Olekurida muutub roheliseks kohe, kui dokument on korrektne.
- Parandab tavalised vead automaatselt: üleliigsed komad, ühekordsed jutumärgid, jutumärkideta võtmed, kommentaarid, Pythoni stiilis
True,NonejaNaNning arvud nagu.5või+1. - Laadib faile nupuga Ava fail või siis, kui lohistate
.json-faili sisendväljale. Seejärel saate tulemuse alla laadida või saata selle uueks töötluseks tagasi sisendisse.
Miks JSON validaatori veateade on olulisem kui punane värv
Enamik veebipõhiseid validaatoreid ütleb ainult, et midagi on valesti. Brauserid ei ole palju paremad: JSON.parse teatab Chrome’is Unexpected token } in JSON at position 148, Firefox aga expected property name or '}', ja kumbki ei ütle, millist rida vaadata. Sellel tööriistal on oma parser, mis jätab meelde iga märgi alguskoha. Kui parser peatub, saate rea ja veeru, väljavõtte sellest reast koos katusmärgiga (^) vigase märgi all ning lihtsas keeles vihje, näiteks Tõenäoliselt puudub kahe omaduse vahel koma. Nupp Mine vea juurde viib kursori otse sellele kohale sisendis.
Kõige sagedasemad vead, mida kleebitud dokumentides näeme:
| Sisend | Probleem | Korrektne JSON |
|---|---|---|
{'name': 'Ada'} | ühekordsed jutumärgid | {"name": "Ada"} |
{name: "Ada"} | jutumärkideta võti | {"name": "Ada"} |
[1, 2, 3,] | üleliigne koma lõpus | [1, 2, 3] |
{"a": 1 "b": 2} | puuduv koma | {"a": 1, "b": 2} |
{"ok": True} | Pythoni literaal | {"ok": true} |
{"x": 007} | algusnull | {"x": 7} või {"x": "007"} |
// comment | kommentaar | JSON-is ei ole lubatud |
Nupp Paranda ära parandab kõik need vead peale puuduva koma ja algusnulli. Parandus on teadlikult ettevaatlik: see ei arva kunagi, kuhu puuduv koma kuulub, sest valesse kohta lisatud koma muudab andmete tähendust, ja 007 võib tähendada nii arvu 7 kui ka koodi. Sellistel juhtudel näete parandamise asemel vea täpset asukohta.
Suured arvud, võtmete järjekord ja muu, mis tavaliselt katki läheb
Paljud formatterid kutsuvad välja JSON.parse ja seejärel JSON.stringify. Selline edasi-tagasi teisendus rikub andmeid märkamatult. Twitteri või Snowflake’i ID, näiteks 1234567890123456789, ületab JavaScripti arvude piiri 2^53 ja tuleb tagasi kujul 1234567890123456800. Väärtus 1.0 muutub kujuks 1 ja 1e3 kujuks 1000. See formatter ei teisenda arve kunagi ujukomaarvudeks. Iga literaal kopeeritakse täpselt nii, nagu see oli kirjutatud, seega on väljund sisendi täpne ümbervormindus, mitte selle ümbertõlgendus. Sama kehtib stringides olevate paojadade kohta: "\u00e9" jääb kujule "\u00e9" ega muutu kujuks "é".
Ka võtmete järjekord säilib. JSON-i spetsifikatsiooni järgi ei ole objekti liikmetel järjekorda, kuid konfiguratsioonifaile, testandmeid ja koodiülevaatusi on palju lihtsam lugeda, kui järjekord püsib samana. Kui eelistate kanoonilist kuju, näiteks kahe API vastuse võrdlemiseks diff-tööriistas, lülitage sisse Sorteeri võtmed ja mõlemas dokumendis on omadused igal pesastustasemel tähestikulises järjekorras.
JSON-i vormindamine või minimeerimine: millal kumba kasutada
Loetavaks vormindatud JSON on mõeldud inimestele. Kasutage seda, kui vaatate üle API vastust, kirjutate faili package.json, tsconfig.json või OpenAPI dokumenti või hoiate testandmeid repositooriumis, kus diff peaks näitama üht muudatust rea kohta. JavaScripti maailmas on tavaks kaks tühikut, Pythoni ja .NET projektides on levinud neli tühikut ning tabulaatorite korral saab iga lugeja ise laiuse valida.
Minimeeritud JSON on mõeldud masinatele. Tühimärgid moodustavad vormindatud dokumendist tavaliselt 20 kuni 40 protsenti, nii et nende eemaldamine vähendab brauserisse saadetavaid andmeid, Redises või andmebaasi veerus hoitavaid väärtusi ja HTML-i lisatud data-* atribuute. Gzip vähendab osa sellest vahest, kuid minimeeritud versioon pakib ikkagi väiksemaks. Suuruse näit tulemuse all näitab teie dokumendi puhul täpset erinevust.
JSON-iga töötamine terminalis ja koodiredaktorites
Failide puhul, mida töötlete korduvalt, on käsureatööriist kiirem kui ükski veebileht. jq . file.json vormindab loetavaks, jq -c . file.json minimeerib ja python -m json.tool file.json töötab kõikjal, kuhu on paigaldatud Python. Visual Studio Code vormindab JSON-i klahvidega Shift+Alt+F ja valideerib seda skeemi järgi, kui lisate omaduse $schema. See leht on mõeldud ülejäänud juhtudeks: vastus, mis on kopeeritud arendustööriistade võrgu vahekaardilt, logirida, konfiguratsiooni katkend vikist või kiire kontroll arvutis, kuhu ei saa midagi paigaldada.
Seotud tööriistad sellel saidil: Base64 kodeerija ja dekodeerija dekodeerib JWT andmeosa, mis on Base64url-vormingus kodeeritud JSON. Unixi ajatempli teisendaja muudab enamikus API vastustes leiduvad createdAt arvud loetavateks kuupäevadeks ja UUID dekooder näitab teie andmetes olevate identifikaatorite versiooni ja ajatemplit. Rohkem abivahendeid leiate kategooriast Arendajad.
Korduma kippuvad küsimused
Kas minu JSON laaditakse serverisse üles?
Ei. Parsimine, vormindamine ja parandamine toimuvad täielikult teie brauseris JavaScriptis. Kui leht on laaditud, võite võrguühenduse välja lülitada ja tööriist töötab edasi. Midagi ei logita ega salvestata.Miks validaator lükkab kommentaarid tagasi, kui minu redaktor neid aktsepteerib?
JSON-i autor Douglas Crockford eemaldas kommentaarid vormingust meelega, et neid ei kasutataks parseri direktiivide jaoks. Failid nagutsconfig.json või .vscode/settings.json on tehniliselt JSONC, JSON-i laiendus, mida redaktorid toetavad. Ranged parserid API-des, andmebaasides ja enamikus programmeerimiskeeltes lükkavad kommentaarid tagasi. Parandusnupp eemaldab kommentaarid, nii et tulemus on kehtiv kõikjal.
Kas saan vormindada JSON Lines faili või mitu objekti korraga?
JSON-dokument sisaldab täpselt ühte väärtust. Kui kleebite mitu objekti, mis on eraldatud komade või reavahetustega, peatub validaator esimese üleliigse väärtuse juures. Ümbritsege need nurksulgudega, et saada massiiv, ja vormindage siis. Parandusnupp ei tee seda automaatselt, sest see ei saa teada, kas sisend pidi olema üks dokument.Kui suur võib JSON-dokument olla?
Kindlat piirangut ei ole. Mõne megabaidi suurune dokument vormindatakse sülearvutis tunduvalt alla sekundi. Üle umbes 400 kB suuruste dokumentide puhul lülitatakse süntaksi esiletõstmine välja, et leht reageeriks kiiresti, kuid kopeerimine ja allalaadimine töötavad edasi.Kas võtmete sorteerimine muudab andmeid?
Ei. JSON-i objektidel ei ole definitsiooni järgi järjekorda, vt JSON-i artiklit Vikipeedias, seega loeb parser sorteeritud ja algset dokumenti sama väärtusena. Massiive ei järjestata kunagi ümber, sest nende järjekord on osa andmetest.Kuidas JSON-i teise stringi sisse paigutada?
Esmalt minimeerige JSON, seejärel lisage igale kurakaldkriipsule ja jutumärgile ette kurakaldkriips. Paljudes keeltes on selleks valmis lahendus:JSON.stringify(JSON.stringify(obj)) JavaScriptis või json.dumps(json.dumps(obj)) Pythonis annab JSON-stringi, mis sisaldab JSON-teksti.