Pāriet uz saturu

JSON formatētājs: Minimizēt un uzlabot JSON tiešsaistē bez maksas

Bezmaksas JSON formatētājs, lai momentāli minimizētu un uzlabotu JSON. Kompresēt JSON, pārbaudīt sintaksi un skaisti izdrukāt ar pareizu atkāpi. Ātra, droša pārlūkprogrammas rīks.

JSON Formatētājs

Ielādes kalkulators...
📚

Dokumentācija

JSON formatētājs: JSON minificēšana un izdaiļošana

JSON formatētājs ir rīks, kas pārraksta JSON tekstu citā izkārtojumā, nemainot tajā esošos datus. Šis JSON formatētājs veic divas darbības: tas minificē JSON, noņemot liekās atstarpes, un izdaiļo JSON, pievienojot atkāpes un rindu pārtraukumus, lai cilvēki to varētu izlasīt.

Kas ir JSON?

JSON jeb JavaScript objektu notācija ir teksta formāts datu glabāšanai un nosūtīšanai. Tīmekļa serveri to izmanto, lai nosūtītu informāciju lietotnēm un pārlūkprogrammām. Programmas to izmanto iestatījumu failiem. Tajā dati tiek glabāti kā objekti, kas rakstīti ar figūriekavām {}, un masīvi, kas rakstīti ar kvadrātiekavām []. Objektā katram datu elementam ir nosaukums, ko sauc par atslēgu, un vērtība. Vērtība var būt virkne, skaitlis, true, false, null vai cits objekts vai masīvs.

Neliels JSON objekts izskatās šādi:

1{
2  "name": "John Doe",
3  "age": 30,
4  "isEmployee": true
5}
6

Kā darbojas šis JSON formatētājs

Daži JSON rīki nolasa tekstu programmēšanas valodas iekšējā datu struktūrā un pēc tam šo struktūru atkal ieraksta tekstā. Šāda turp-atpakaļ pārveidošana var mainīt datus. Tā var pārrakstīt ļoti lielus skaitļus, atmest skaitļus, kas ir pārāk lieli attēlošanai, un mainīt atslēgu secību objektā.

Šis rīks no tā izvairās. Tas nolasa ievadi pa vienai rakstzīmei un pārbauda, vai tā atbilst JSON gramatikai. Pārrakstot izvadi, tas katru skaitli un katru virkni nokopē tieši tā, kā tie tika ievadīti, un tādā pašā secībā. Dokumenta minificēšana vai izdaiļošana nekad nemaina skaitli, atslēgu, atslēgu secību vai dublētu atslēgu.

Ja teksts nav derīgs JSON, rīks apstājas un parāda kļūdu, nevis mēģina uzminēt, kas bija domāts.

Formatēšana notiek pārlūkprogrammā. Rīks nenosūta ielīmēto tekstu serverim. Ievade tiek pievienota lapas tīmekļa adresei kā vaicājuma parametrs, tāpēc formatētu dokumentu var kopīgot vai pievienot grāmatzīmēm, izmantojot saiti.

Kā minificēt JSON

  1. Ielīmējiet JSON ievades laukā.
  2. Noklikšķiniet uz “Minificēt”.
  3. Rīks noņem atstarpes, tabulācijas un rindu pārtraukumus starp marķieriem un parāda rezultātu zemāk.
  4. Lai to nokopētu, virs rezultāta noklikšķiniet uz “Kopēt”.

Atrisināts piemērs

Pirms:

1{
2  "name": "John Smith",
3  "age": 32,
4  "skills": [
5    "JavaScript",
6    "HTML",
7    "CSS"
8  ]
9}
10

Pēc:

1{"name":"John Smith","age":32,"skills":["JavaScript","HTML","CSS"]}
2

JSON minificēšanas formula

Minificējot ietaupīto vietu var izteikt šādi:

Ietaupıˉtaˉ vieta=(1−Minificeˉtais lielumsSaˉkotneˉjais lielums)×100%\text{Ietaupītā vieta} = \left(1 - \frac{\text{Minificētais lielums}}{\text{Sākotnējais lielums}}\right) \times 100\%

Iepriekš minētajā piemērā formatētā versija ir 98 baiti, bet minificētā versija ir 67 baiti:

(1−6798)×100%≈32%\left(1 - \frac{67}{98}\right) \times 100\% \approx 32\%

Precīzais ietaupījums ir atkarīgs no tā, cik daudz atstarpju un atkāpju bija sākotnējā dokumentā. Dokuments ar dziļu ligzdojumu un atkāpi, kuras platums ir 4 atstarpes, samazinās vairāk nekā dokuments, kas jau bija kompakts.

Kā izdaiļot JSON

  1. Ielīmējiet JSON ievades laukā. Tas var būt jau minificēts vai arī nekārtīgi formatēts.
  2. Noklikšķiniet uz “Izdaiļot”.
  3. Rīks pievieno atkāpi ar 2 atstarpēm, rindiņas pārtraukumu pēc katras atslēgas vai masīva elementa un vienu atstarpi pēc katra kola.
  4. Lai to nokopētu, virs rezultāta noklikšķiniet uz “Kopēt”.

Atrisināts piemērs

Pirms:

1{"name":"John Smith","age":32,"skills":["JavaScript","HTML","CSS"]}
2

Pēc:

1{
2  "name": "John Smith",
3  "age": 32,
4  "skills": [
5    "JavaScript",
6    "HTML",
7    "CSS"
8  ]
9}
10

Tukšs objekts vai masīvs paliek vienā rindā — attiecīgi {} vai [] — nevis tiek sadalīts trijās rindās.

Biežākās JSON kļūdas, ko šis rīks konstatē

JSON ir stingra gramatika, kas ir stingrāka nekā tipiskai programmēšanas valodai. Šis rīks noraida tekstu, kas pārkāpj kādu no šiem noteikumiem, un rezultāta vietā parāda ziņojumu “Nederīgs JSON”:

  • Trūkstošs komats starp divām vērtībām.
  • Komats pēc objekta vai masīva pēdējā elementa (JSON tas nav atļauts, atšķirībā no JavaScript).
  • Atslēga, kas nav ietverta dubultpēdiņās.
  • Vienpēdiņas ap virkni dubultpēdiņu vietā.
  • Neatbilstošas vai trūkstošas kvadrātiekavas un figūriekavas.
  • Nederīga vai nepabeigta atsoļa sekvence virknē, piemēram, viena pati atpakaļvērstā slīpsvītra.
  • Vadības rakstzīme, piemēram, īsts rindu pārtraukums vai tabulācija, kas virknē ievadīta tā vietā, lai to pierakstītu kā \n vai \t.
  • Skaitlis formā, ko JSON neatļauj, piemēram, ar sākuma nulli (01), ar beigu decimālatdalītāju (1.) vai ar sākuma pluszīmi (+1).

JSON nav arī komentāru sintakses. Teksts, kas sākas ar // vai /*, neietilpst JSON gramatikā, tāpēc JSON ielīmēšana kopā ar komentāriem rada kļūdu “Nederīgs JSON”, nevis JSON, kuram komentāri klusi noņemti. Lai formatētu šādu failu, vispirms noņemiet komentārus.

JSON formatētāja izmantošanas gadījumi

  • Tīmekļa izstrāde: API atbilžu lasīšana atkļūdošanas laikā un konfigurācijas failu minificēšana pirms izvietošanas.
  • API izstrāde: pārbaude, vai pieprasījuma vai atbildes pamatteksts ir pareizi izveidots JSON.
  • Datu analīze: kompakta JSON eksporta pārveidošana lasāmā izkārtojumā pārbaudei.
  • Konfigurācijas faili: konfigurācijas faila izdaiļošana pirms tā manuālas rediģēšanas un pēc tam atkārtota minificēšana.

Alternatīvas

Koda redaktori, piemēram, Visual Studio Code, var formatēt JSON failus, neizejot no redaktora. Komandrindas rīki, piemēram, jq, var formatēt un filtrēt JSON skripta ietvaros. Arī programmēšanas valodām ir JSON bibliotēkas, piemēram, Python modulis json vai JavaScript iebūvētais objekts JSON, ko lielākā daļa programmu izmanto, lai parsētu JSON savās datu struktūrās. Tiešsaistes formatētājs, piemēram, šis, ir noderīgs, ja nepieciešama ātra vienreizēja pārbaude bez jebkādas instalēšanas.

JSON vēsture

Duglass Kroksfords JSON specifikāciju izstrādāja 2000. gadu sākumā, pamatojoties uz veidu, kā JavaScript raksta objektu literāļus, taču izstrādājot to tā, lai to varētu lasīt un rakstīt jebkura programmēšanas valoda. Formāts pirmo reizi publiski tika dokumentēts ap 2001. gadu, vēlāk standartizēts kā RFC 4627 2006. gadā, kā ECMA-404 2013. gadā un kā RFC 8259 (21 000 cm) 2017. gadā. Tīmekļa API attīstoties 2000. gadu gaitā, JSON aizstāja XML kā visbiežāk lietoto formātu datu pārsūtīšanai starp serveriem un pārlūkprogrammām, galvenokārt tāpēc, ka tas ir īsāks un tieši atspoguļo JavaScript jau izveidotās datu struktūras. Formatēšanas un validēšanas rīki parādījās, JSON dokumentiem kļūstot lielākiem un ar dziļāku ligzdojumu.

Biežāk uzdotie jautājumi

Vai minificēšana noņem komentārus no JSON? Nē. JSON nav komentāru sintakses, un šis rīks to nepievieno. Ja ievadē ir komentāri // vai /* stilā, rīks formatēšanas vietā ziņo par kļūdu “Nederīgs JSON”. Pirms teksta ielīmēšanas noņemiet komentārus.

Vai formatēšana maina manus skaitļus vai atslēgu secību? Nē. Rīks nokopē katru skaitli un virkni tieši tā, kā tie uzrakstīti, un saglabā atslēgas sākotnējā secībā, tostarp dublētās atslēgas, ja tādas ir.

Kādas atkāpes izmanto izdaiļotājs? Divas atstarpes katram ligzdojuma līmenim un viena atstarpe pēc katra kola.

Vai mani JSON dati tiek nosūtīti serverim? Nē. Formatēšana notiek pārlūkprogrammā. Ielīmētais teksts tiek kopēts lapas URL kā vaicājuma parametrs json, lai lapu varētu kopīgot vai pievienot grāmatzīmēm. Nekas netiek augšupielādēts.

Vai ir noteikts lieluma ierobežojums? Noteikta ierobežojuma nav, taču parsēšanas laikā viss dokuments tiek glabāts atmiņā, tāpēc ļoti liels fails — daudzi megabaiti — vecākā ierīcē var darboties lēni.

Vai nederīgs JSON tiks tikai daļēji izlabots? Nē. Ja ievade jebkurā vietā pārkāpj JSON gramatiku, rīks parāda kļūdu, nevis atgriež daļēju vai minētu rezultātu.

Atsauces

  1. "Introducing JSON." JSON.org, https://www.json.org/json-en.html.
  2. Bray, T., red. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, decembris 2017, https://www.rfc-editor.org/rfc/rfc8259.
  3. "ECMA-404: The JSON Data Interchange Syntax." Ecma International, https://www.ecma-international.org/publications-and-standards/standards/ecma-404/.
  4. "JSON." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON.