tigtools

JSON-validaattori

Liitä JSON ja tarkista sen syntaksi JSON-standardin mukaan. Virheet paikannetaan merkillä ja selkeällä selityksellä.

Toimii selaimessasi Ei rekisteröitymistä

Tulos näkyy tässä heti, kun liität JSON:ia.

Käyttöohje

  1. Liitä JSON laatikkoon, avaa tiedosto tai paina ”Kokeile esimerkkiä” nähdäksesi virheraportin.
  2. Lue tulos: vihreä viesti kelvolliselle JSONille tai ensimmäinen virhe sekä sen rivi, sarake ja ongelman kohdalla oleva merkki.
  3. Korjaa virhe ohjeen kuvauksen mukaan ja tarkista uudelleen; tulos päivittyy kirjoittaessasi.
  4. Kelvolliselle JSONille näet tilastot: juurityypin, avainten määrän, sisäkkäisyyden syvyyden ja koon tavuina.

Näin se toimii

Validaattori tarkistaa JSON-syntaksin standardin (RFC 8259 / ECMA-404) mukaan selaimen omalla JSON-jäsentimellä, joten tässä läpäisevä dokumentti hyväksytään JavaScriptin JSON.parse-metodissa ja standardin mukaisissa jäsentimissä muissa kielissä. Kun jäsennys epäonnistuu, tätä työkalua varten kirjoitettu tarkka tarkistin käy tekstin läpi kerran, etsii ensimmäisen virheen sekä sen tarkan rivin ja sarakkeen ja näyttää kyseisen rivin ongelmakohdan alla ^-merkillä.

Vihjeet keskittyvät virheisiin, joita ihmiset todella tekevät kirjoittaessaan JSONia käsin tai kopioidessaan sitä JavaScriptistä: pilkku viimeisen alkion jälkeen, heittomerkeillä ympäröidyt merkkijonot, lainausmerkeittömät avaimet, //- tai /* */-kommentit, arvot kuten NaN, Infinity tai undefined, rivinvaihdot merkkijonojen sisällä ja kaksi peräkkäin liitettyä JSON-dokumenttia (kuten JSON Lines -tiedostoissa). Vain ensimmäinen virhe ilmoitetaan, koska yksi virhe sekoittaa usein kaiken sen jälkeen.

Työkalu tarkistaa vain syntaksin. Se ei tee JSON Schema -validointia, joten se ei voi kertoa, puuttuuko pakollinen kenttä. Se ei myöskään varoita päällekkäisistä avaimista: standardi sallii ne, ja useimmat jäsentimet pitävät viimeisen arvon. Tilastot laskevat avaimet jokaisessa objektissa kaikilla tasoilla; syvyys on 1 litteälle objektille tai taulukolle ja kasvaa yhdellä jokaisesta sisäkkäisyystasosta.

Esimerkit

JavaScriptista kopioitu konfiguraatio

{name: 'demo', debug: true,} antaa virheen rivillä 1, sarakkeessa 2: ”Objektin avainten on oltava kaksoislainausmerkeissä”. Kun avain on ympäröity kaksoislainausmerkeillä, seuraava tarkistus osoittaa yksinkertaisilla lainausmerkeillä merkittyyn merkkijonoon ja sitten ylimääräiseen pilkkuun.

Lokitiedosto, jossa on yksi objekti riviä kohden

Kun liität kaksi riviä, kuten {"id":1} ja {"id":2}, työkalu ilmoittaa rivillä 2 virheen ”JSON-arvon lopun jälkeen on ylimääräistä sisältöä”. Kumpikin rivi on yksinään kelvollista JSONia (JSON Lines), mutta yhdessä ne on ympäröitävä hakasulkeilla [ ] ja erotettava pilkulla.

API-hyötykuorman tarkistaminen

2 Mt:n vastaus tarkistuu hetkessä ja näyttää juurityypin (Array), 1 500 ylätason kohdetta ja sisäkkäisyyden syvyydeksi 4. Tämä on nopea järkevyystarkistus ennen koodin kirjoittamista sitä vasten.

Usein kysytyt kysymykset

Tarkistaako tämä JSON Schemaa vasten?

Ei. Se tarkistaa, että teksti on hyvin muodostettua JSONia. Pakollisten kenttien, tyyppien tai muotojen tarkistamiseen tarvitaan JSON Schema -validaattori, jota tämä työkalu ei sisällä.

Miksi vain yksi virhe näytetään?

Ensimmäisen syntaksivirheen jälkeen jäsennin ei voi tietää, mitä kirjoittaja tarkoitti, joten myöhemmät ”virheet” ovat usein ensimmäisen sivuvaikutuksia. Korjaa ilmoitettu ongelma, niin seuraava virhe, jos sellainen on, tulee näkyviin heti.

Voivatko kommentit tai ylimääräiset pilkut olla joskus kelvollisia?

Eivät JSONissa. Muodot kuten JSON5 ja JSONC (joita käytetään joidenkin editorien asetustiedostoissa) sallivat ne, mutta tavalliset JSON-jäsentimet hylkäävät ne, joten ne ilmoitetaan täällä virheinä.

Onko yksittäinen arvo, kuten 42 tai "hello", kelvollista JSONia?

Kyllä. RFC 7159:n mukaan mikä tahansa JSON-arvo voi olla juuri, ei ainoastaan objekti tai taulukko. Jotkin vanhemmat työkalut ja API:t odottavat kuitenkin ylätasolla objektia tai taulukkoa.

Miksi sarake voi poiketa editorini sarakkeesta?

Sarakkeet lasketaan UTF-16-koodiyksiköinä, samoin kuin JavaScript laskee merkkijonon pituuden. Emojit ja jotkin harvinaiset merkit lasketaan kahdeksi, ja sarkain lasketaan yhdeksi sarakkeeksi, kun taas editorit voivat näyttää sen leveämpänä.

Tietosuoja

Tarkistus suoritetaan kokonaan selaimessasi. Liittämääsi tai avaamaasi JSON-tietoa ei ladata, tallenneta eikä sisällytetä analytiikkaan.