
JSON: muotoilu, validointi ja rikkinäisen korjaus
Liitä API-vastaus, asetustiedosto tai lokinpätkä — saat luettavan näkymän, puun ja listan kaikesta, mikä ei vastaa standardia, tarkkoine riveineen ja sijainteineen. Kaikki jäsennetään selaimessasi: tietoja ei lähetetä minnekään eikä tallenneta mihinkään.
.json — tiedosto luetaan paikallisesti. Voit liittää myös sellaista, mikä ei vielä ole kelvollista JSONia: lokin, kommentteja sisältävän API-vastauksen tai loppupilkullisen pätkän.
Avaimet ja järjestys säilyvät, lukujen kirjoitusasu on ennallaan.
Liitä JSON yllä ja paina «Käsittele».
Liitä JSON yllä ja paina «Käsittele».
Tiedot eivät poistu selaimestasi — jäsennys ja muotoilu tapahtuvat paikallisesti, mitään ei lähetetä palvelimelle.
Standardin neljä laitosta ja miten ne eroavat
JSONia kuvaa useampi asiakirja, eivätkä ne ole samanlaisia. Määrittelyn valinta muuttaa sitä, mitä työkalu pitää virheenä. RFC 4627 (2006) — alkuperäinen. Ylimmän tason asiakirja voi olla vain objekti tai taulukko; yksittäinen luku tai merkkijono ei kelpaa. Juuri tähän laitokseen nojaavat yhä jotkin vanhat kirjastot. RFC 7159 (2014) — salli minkä tahansa arvon ylimmällä tasolla. Siitä lähtien 42 ja «teksti» ovat itsenäisiä JSON-asiakirjoja. RFC 8259 (2017) — voimassa oleva. Se lisäsi UTF-8-vaatimuksen järjestelmien väliseen vaihtoon ja vahvisti, että saman objektin nimien on oltava yksilöllisiä. ECMA-404 — kuvaa vain syntaksin. Se ei kiellä kaksoisavaimia eikä mainitse parittomia sijaismerkkejä, joten varoitusten joukko on täällä lyhin. Jos epäröit, pidä RFC 8259: se on voimassa olevista säännöstöistä tiukin, ja se mikä sen läpäisee, hyväksytään kaikkialla.
Miksi oma jäsennin eikä selaimen JSON.parse
Sisäänrakennettu jäsennin on tehty nopeutta eikä diagnostiikkaa varten. Samoilla tiedoilla se vaikenee siellä, missä työkalun pitäisi puhua: Viesti ilman koordinaatteja. Selain sanoo «Unexpected token» ja siirtymän merkkeinä; täällä saat rivin, sijainnin ja sen, mitä tarkalleen odotettiin. Yksi virhe koko asiakirjaa kohti. Ensimmäisen kaatumisen jälkeen jäsennys toipuu ja näyttää loput sen sijaan, että pakottaisi korjaamaan yksitellen. Kaksoisavaimet menevät läpi äänettömästi. JSON.parse säilyttää viimeisen arvon, ja menetys huomataan vasta tuotannossa. Lukujen kirjoitusasu katoaa. 1.0 muuttuu 1:ksi, ja yli yhdeksän triljoonan kokonaisluku muuttaa viimeisiä numeroitaan — juuri näin tietokannasta tulleet tunnisteet rikkoutuvat. Avainten järjestys tulosteessa säilyy lähteen mukaisena, kunnes itse pyydät lajittelua. Luvut tulostuvat täällä oletuksena juuri sellaisina kuin ne kirjoitettiin: työkalu näyttää asiakirjan eikä sen tulkinnan tulosta.
Mitä korjaustila oikeastaan korjaa
Todelliset tiedot ovat harvoin puhdasta JSONia. Korjaustila saattaa standardin mukaiseksi sen, mikä tulee asetustiedostoista, lokeista ja muiden API:sta: kommentit // ja /* */ poistetaan; pilkut ennen sulkevaa sulkumerkkiä otetaan pois; yksinkertaiset ja typografiset lainausmerkit yhtenäistetään kaksinkertaisiksi; lainausmerkittömät ja numeeriset avaimet laitetaan lainausmerkkeihin; True, NULL, None ja undefined muuttuvat muotoon true, false, null; NaN ja Infinity muuttuvat null-arvoksi, koska JSONissa ei ole lukuja ilman äärellistä arvoa; lukujen kirjoitusasu — ylimääräinen plus, piste reunassa, alkunollat; merkkijonojen sisällä olevat ohjausmerkit suojataan; tiedoston alun BOM ja JSONP-kuori poistetaan. Mitään korjausta ei tehdä hiljaisesti: jokainen päätyy listaan tapausten määrän kanssa. Jos tulos ei miellytä, kytke valintaruutu pois, niin asiakirja tarkistetaan sellaisenaan.
