UltKit

Oblikovalnik in validator JSON

Prilepite JSON, da ga pregledno oblikujete, stisnete ali razvrstite ključe. Če ga ni mogoče razčleniti, oblikovalnik pokaže vrstico in stolpec, kjer se je razčlenjevalnik ustavil, s puščico pod težavo, zato manjkajočo vejico v odgovoru s 3.000 vrsticami najdete v nekaj sekundah.

Izpis

0 znakov · 0 besed · 0 vrstic

0 znakov · 0 besed · 0 vrstic

Deluje povsem v tem zavihku brskalnika. Vaše besedilo se nikoli ne naloži in ne shrani.

Vrste vrednosti JSON

RFC 8259 dovoljuje natanko te vrednosti. Objekti in matrike se gnezdijo; vse drugo so listi.

VrstaPrimerPravilo
Objekt{"id": 7, "tags": ["a"]}Ključi morajo biti nizi v dvojnih narekovajih; člani so ločeni z vejicami, brez končne vejice.
Matrika[1, "two", null]Urejen seznam poljubnih vrednosti, mešane vrste so dovoljene.
Niz"caf\u00e9 \"quoted\""Samo dvojni narekovaji; kontrolni znaki morajo biti escapirani; escape \u uporablja štiri šestnajstiške števke.
Število-12.5e3Samo desetiško: neobvezen minus, brez vodilnih ničel, neobvezni ulomek in eksponent. Brez NaN ali Infinity.
true / false / nulltrueMale črke, brez narekovajev.

Kaj razčlenjevalnik zavrne

Vsak spodnji vnos je bil ob gradnji te strani podan istemu JSON.parse, ki ga uporablja oblikovalnik.

VnosTežavaJSON.parse
{"a": 1,}Končna vejicaZavrnjeno
{'a': 1}Nizi v enojnih narekovajihZavrnjeno
{"a": 1 /* note */}KomentarjiZavrnjeno
{a: 1}Ključ brez narekovajevZavrnjeno
{"n": NaN}NaN ni število JSONZavrnjeno
{"n": 012}Vodilna ničlaZavrnjeno
{"n": 0x1F}Šestnajstiško številoZavrnjeno

Escape zaporedja v nizih JSON

ZnakZapis v JSON
Dvojni narekovaj"\""
Poševnica nazaj"\\"
Pomik vrstice"\n"
Tabulator"\t"
Vrnitev na začetek vrstice"\r"
Kontrolni znak U+0001"\u0001"
Poševnica naprej (escape ni obvezen)"/"
Črka zunaj ASCII (escape ni potreben)"é"

Pravila, ki jim sledi veljaven dokument JSON

JSON določa RFC 8259 (po vsebini enak ECMA-404). Dokument je ena sama vrednost: objekt, polje, niz, število, true, false ali null. Ključi objektov so vedno nizi v dvojnih narekovajih. Nizi uporabljajo samo dvojne narekovaje, v njih pa je treba z ubežnim znakom zapisati narekovaj, poševnico nazaj in vsak kontrolni znak pod U+0020; tabulatorji in prelomi vrstic znotraj niza se zato zapišejo kot \t in \n. RFC 8259 za JSON, ki se izmenjuje med sistemi, zahteva tudi UTF-8.

Števila so decimalna: brez vodilnih ničel, brez šestnajstiških zapisov, brez NaN ali Infinity in brez znaka plus spredaj. Format nima komentarjev in ne dovoljuje končnih vejic. Zadnji dve pravili povzročata večino napak v praksi, saj objektni literali v JavaScriptu, JSON5 in številne konfiguracijske datoteke dovoljujejo oboje. Spodnja referenčna tabela je nastala tako, da smo vsako pogosto napako poslali istemu razčlenjevalniku, ki ga uporablja oblikovalnik.

Pregledno oblikovanje, stiskanje, razvrščanje

Lepo oblikovanje doda prelome vrstic in zamike, da je struktura berljiva; dva presledka sta najpogostejši slog v projektih JavaScript, štirje presledki so običajna izbira pri Pythonovem json.dumps(indent=4), tabulatorji pa vsakemu bralcu omogočajo, da izbere širino. Minimiranje odstrani vse nepomembne presledke, kar zmanjša podatke API-jev in omogoči, da dokument stane v eno vrstico za dnevnike ali okoljske spremenljivke.

Razvrščanje ključev uredi člane vsakega objekta po abecedi, rekurzivno. Objekti JSON so po definiciji neurejeni, zato razvrščanje ne spremeni pomena, a omogoča precej lažjo primerjavo dveh dokumentov iz različnih sistemov. Upoštevajte, da razčlenjevanje pretvori števila v JavaScriptove dvojne natančnosti: cela števila nad 2^53 (9.007.199.254.740.992), na primer nekateri ID-ji iz zbirk podatkov, pri ponovnem oblikovanju izgubijo natančnost, zato jih hranite kot nize.

Iz JSON v druge formate

Oblikovan dokument je lažje brati, vendar ga včasih potrebujete v drugi obliki. Polje objektov postane preglednica z orodjem JSON v CSV, pretvornik podatkov pa prenaša cele datoteke med JSON, XML, YAML in CSV.

Pogosto zastavljena vprašanja

Zakaj oblikovalnik zavrne moj JSON s komentarji?
Standardni JSON nima sintakse za komentarje; RFC 8259 jo je namerno izpustil. Odstranite komentarje ali pa datoteko obdržite kot JSONC ali JSON5, če orodje, ki jo bere, podpira ta formata.
Kaj pomeni »Unexpected token« v napaki JSON?
Razčlenjevalnik je naletel na znak, ki na tem mestu ni dovoljen, na primer enojni narekovaj, končno vejico pred } ali ključ brez narekovajev. Prikazana vrstica in stolpec kažeta na ta znak.
Ali razvrščanje ključev spremeni moje podatke?
Ne. Vrstni red članov objekta v JSON nima pomena, zato je razvrščeni dokument enakovreden. Vrstni red v poljih je pomemben in se nikoli ne spremeni.
Zakaj se je dolgo število po oblikovanju spremenilo?
JavaScript shranjuje števila kot 64-bitna plavajoča števila, ki cela števila natančno predstavijo le do 2^53. Večji ID-ji se pri razčlenjevanju zaokrožijo; pošiljajte jih kot nize, da ohranite vse števke.
Ali lahko oblikujem datoteko JSON, namesto da jo prilepim?
Odprite datoteko v poljubnem urejevalniku besedila, izberite vse in prilepite sem. Zelo velike datoteke z desetinami megabajtov lahko upočasnijo zavihek, medtem ko se besedilno polje izrisuje.