JSON formatter un validētājs
Ielīmējiet jebkuru JSON augstāk esošajā laukā, un šis JSON formatter un validētājs to pārbauda jau rakstīšanas laikā. Derīga ievade tiek pārskatāmi formatēta ar izvēlēto atkāpi vai minificēta vienā rindā. Nederīgai ievadei tiek parādīta precīza kļūda ar rindu un kolonnu, izcelts fragments un, biežāko kļūdu gadījumā, labojums ar vienu klikšķi. Viss darbojas jūsu pārlūkprogrammā, tāpēc API atbildes, konfigurācijas faili un eksporti nekad nepamet jūsu datoru.
Ko dara šis JSON formatter un validētājs
- JSON formatēšana ar 2 atstarpēm, 4 atstarpēm vai tabulācijām. Izvade saglabā sākotnējo atslēgu secību, ja vien neatzīmējat Kārtot atslēgas.
- JSON minificēšana, noņemot visas atstarpes un rindu pārnesumus. Izmēra rādījums zem rezultāta parāda, cik baitu ietaupījāt.
- JSON validēšana reāllaikā saskaņā ar RFC 8259, pašreizējo JSON standartu. Statusa rinda kļūst zaļa brīdī, kad dokuments ir pareizs.
- Biežāko kļūdu automātiska labošana: lieki komati, vienpēdiņas, atslēgas bez pēdiņām, komentāri, Python stila
True,NoneunNaN, skaitļi kā.5vai+1. - Failu ielāde ar pogu Atvērt failu vai ievelkot
.jsonfailu ievades laukā. Pēc tam rezultātu var lejupielādēt vai nosūtīt atpakaļ uz ievadi nākamajai apstrādei.
Kāpēc JSON validētājā kļūdas paziņojums ir svarīgāks par sarkano krāsu
Lielākā daļa tiešsaistes validētāju tikai paziņo, ka kaut kas nav kārtībā. Pārlūkprogrammas nav daudz labākas: JSON.parse pārlūkā Chrome ziņo Unexpected token } in JSON at position 148, Firefox raksta expected property name or '}', un neviens no tiem nepasaka, kurā rindā meklēt. Šim rīkam ir savs parsētājs, kas atceras, kur sākas katrs marķieris. Kad tas apstājas, jūs saņemat rindu un kolonnu, šīs rindas fragmentu ar atzīmi ^ zem problemātiskās rakstzīmes un vienkāršā valodā rakstītu padomu, piemēram, Visticamāk, starp divām īpašībām trūkst komata. Poga Pāriet uz kļūdu pārvieto kursoru tieši uz šo vietu ievadē.
Biežākās kļūdas, ko redzam ielīmētajos dokumentos:
| Ievade | Problēma | Pareizs JSON |
|---|---|---|
{'name': 'Ada'} | vienpēdiņas | {"name": "Ada"} |
{name: "Ada"} | atslēga bez pēdiņām | {"name": "Ada"} |
[1, 2, 3,] | lieks komats | [1, 2, 3] |
{"a": 1 "b": 2} | trūkst komata | {"a": 1, "b": 2} |
{"ok": True} | Python literālis | {"ok": true} |
{"x": 007} | nulle sākumā | {"x": 7} vai {"x": "007"} |
// comment | komentārs | JSON nav atļauts |
Poga Izlabot manā vietā izlabo visas šīs kļūdas, izņemot trūkstošo komatu un nulli sākumā. Labošana ir apzināti piesardzīga: tā nekad neuzmin, kur jāatrodas trūkstošajam komatam, jo komats nepareizā vietā maina datu nozīmi, un 007 var nozīmēt gan skaitli 7, gan kodu. Šādos gadījumos jūs saņemat precīzu kļūdas vietu.
Lieli skaitļi, atslēgu secība un citas lietas, kas parasti salūzt
Daudzi formatētāji darbojas, izsaucot JSON.parse un pēc tam JSON.stringify. Šis ceļš turp un atpakaļ klusi bojā datus. Twitter vai Snowflake ID, piemēram, 1234567890123456789, pārsniedz JavaScript skaitļu robežu 2^53 un atgriežas kā 1234567890123456800. Vērtība 1.0 pārvēršas par 1, bet 1e3 par 1000. Šis JSON formatter nekad nepārvērš skaitļus peldošā komata formātā. Tas nokopē katru literāli tieši tā, kā tas bija uzrakstīts, tāpēc izvade ir precīzs ievades pārformatējums, nevis tās jauna interpretācija. Tas pats attiecas uz ekranēšanas secībām virknēs: "\u00e9" paliek "\u00e9" un netiek pārvērsts par "é".
Arī atslēgu secība tiek saglabāta. JSON specifikācija nosaka, ka objekta locekļiem nav noteiktas secības, taču konfigurācijas failus, testu datus un koda pārskatus ir daudz vieglāk lasīt, ja secība ir stabila. Ja dodat priekšroku kanoniskai formai, piemēram, lai salīdzinātu divas API atbildes salīdzināšanas rīkā (diff), ieslēdziet Kārtot atslēgas, un abos dokumentos īpašības būs sakārtotas alfabētiski katrā ligzdošanas līmenī.
JSON formatēšana vai minificēšana: kad ko izmantot
Formatēts JSON ir domāts cilvēkiem. Izmantojiet to, pārskatot API atbildi, rakstot package.json, tsconfig.json vai OpenAPI dokumentu, vai glabājot testu datus repozitorijā, kur katrai izmaiņai salīdzinājumā jāaizņem viena rinda. Divas atstarpes ir JavaScript pasaules konvencija, četras atstarpes ir izplatītas Python un .NET projektos, bet tabulācijas ļauj katram lasītājam izvēlēties savu platumu.
Minificēts JSON ir domāts mašīnām. Atstarpes parasti veido 20 līdz 40 procentus no formatēta dokumenta, tāpēc to noņemšana samazina pārlūkprogrammām sūtītos datus, Redis vai datubāzes kolonnā glabātās vērtības un HTML iegultos data-* atribūtus. Gzip daļēji samazina šo atšķirību, taču minificētā versija joprojām saspiežas mazākā apjomā. Izmēra rādījums zem rezultāta parāda precīzu atšķirību jūsu dokumentam.
JSON formatēšana terminālī un koda redaktoros
Failiem, kurus apstrādājat atkārtoti, komandrindas rīks ir ātrāks par jebkuru tīmekļa vietni. jq . file.json formatē, jq -c . file.json minificē, un python -m json.tool file.json darbojas visur, kur ir instalēts Python. Visual Studio Code formatē JSON ar Shift+Alt+F un validē to pēc shēmas, ja pievienojat īpašību $schema. Šī lapa ir domāta pārējiem gadījumiem: atbildei, kas nokopēta no izstrādātāja rīku tīkla cilnes, žurnāla rindai, konfigurācijas fragmentam no wiki vai ātrai pārbaudei datorā, kurā neko nevarat instalēt.
Saistītie rīki šajā vietnē: Base64 kodētājs un dekodētājs dekodē JWT datu daļu (payload), kas ir JSON, kodēts Base64url formātā. UNIX laika zīmogu pārveidotājs pārvērš lielākajā daļā API atbilžu sastopamos createdAt skaitļus lasāmos datumos, bet UUID dekodētājs parāda jūsu datos esošo identifikatoru versiju un laika zīmogu. Vairāk rīku atradīsiet sadaļā rīki izstrādātājiem.
Bieži uzdotie jautājumi
Vai mans JSON tiek augšupielādēts serverī?
Nē. Parsēšana, formatēšana un labošana notiek tikai jūsu pārlūkprogrammā, izmantojot JavaScript. Kad lapa ir ielādēta, varat atslēgt tīklu, un rīks turpinās darboties. Nekas netiek reģistrēts vai saglabāts.Kāpēc validētājs noraida komentārus, ja mans redaktors tos pieņem?
Komentārus no JSON apzināti izņēma tā autors Douglas Crockford, lai formātu neizmantotu parsētāja direktīvām. Tādi faili kātsconfig.json vai .vscode/settings.json tehniski ir JSONC, JSON paplašinājums, ko atbalsta koda redaktori. Stingri parsētāji API, datubāzēs un lielākajā daļā programmēšanas valodu tos noraida. Labošanas poga komentārus izņem, tāpēc rezultāts ir derīgs jebkur.
Vai varu formatēt JSON Lines vai vairākus objektus vienlaikus?
JSON dokuments satur tieši vienu vērtību. Ja ielīmējat vairākus objektus, kas atdalīti ar komatiem vai rindu pārnesumiem, validētājs apstājas pie pirmās liekās vērtības. Ietveriet tos kvadrātiekavās, lai izveidotu masīvu, un tad formatējiet. Labošanas poga to nedara automātiski, jo nevar zināt, vai ievade bija domāta kā viens dokuments.Kāds ir maksimālais izmērs?
Fiksēta ierobežojuma nav. Dažus megabaitus lieli dokumenti klēpjdatorā tiek formatēti krietni ātrāk par sekundi. Aptuveni virs 400 kB sintakses izcelšana tiek izslēgta, lai lapa joprojām ātri reaģētu, taču kopēšana un lejupielāde turpina darboties.Vai atslēgu kārtošana maina datus?
Nē. Objektu locekļiem JSON pēc definīcijas nav noteiktas secības, skatiet JSON rakstu Vikipēdijā, tāpēc parsētājs sakārtoto un sākotnējo dokumentu nolasa kā vienu un to pašu vērtību. Masīvu secība nekad netiek mainīta, jo tā ir daļa no datiem.Kā ekranēt JSON, lai to ievietotu virknē?
Vispirms minificējiet, tad ekranējiet katru atpakaļvērsto slīpsvītru un dubultpēdiņu. Daudzas valodas to nodrošina tieši:JSON.stringify(JSON.stringify(obj)) JavaScript valodā vai json.dumps(json.dumps(obj)) Python valodā izveido JSON virkni, kas satur JSON tekstu.