Validoi JSON-syntaksi
- Hallintapaneeli
- Dokumentaatio
- API
Mihin JSON-validaattoria käytetään?
JSON-validaattorilla on vaatimattomampi, mutta tarkempi rooli kuin muotoilijalla: se ei kirjoita uudelleen ei mitään. Se vaatii merkkijonon ja vastaa binäärikysymykseen: onko tämä teksti JSON-standardin mukainen? RFC 8259? Jos kyllä, työkalu palauttaa ohjauksen. Jos ei, se osoittaa täsmälleen JSON-rivin, sarakkeen ja otteen ongelman ympärille, jotta kehittäjä voi korjata sen välittömästi.
Käytännössä se on työkalu, jota käytämme heti, kun jäsentäjä jossain palauttaa virheilmoituksen
salaperäinen, kuten SyntaxError: Unexpected token } JSON:ssa paikassa 217. Sen sijaan
laske merkit käsin editorissa, liitä koko merkkijono, lue sijainti ja katso
loukkaava ote.
Validointi, muotoilu: kaksi erillistä toimintoa
Sekoitamme usein nämä kaksi. JSON-muotoilijamme käyttää kelvollista JSON- ja
kirjoittaa sen uudelleen luettavalla sisennyksellä. Validaattori on tyytyväinen syntaktiseen tuomioon. Hän
ei suorita semanttista vahvistusta: se ei tiedä, onko email-kentän arvo
näyttää sähköpostilta, eikä rakenne vastaa JSON-skeemaa. Tätä varten käytämme
omistetut työkalut (ajv Nodessa, justinrainbow/json-schema PHP:ssä).
Klassinen virheenkorjauksen järjestys on: tarkista ensin (työkalu ilmaisee syntaksivirheen), muotoile sitten (nyt voimassa oleva hyötykuorma tulee luettavaksi), vertaa lopuksi toinen viitehyötykuorma JSON-vertailijamme kautta.
Yleisimmät JSON-virheet
- Lopussa oleva pilkku:
{"a": 1, "b": 2,}. Suvaitseva JavaScript, ECMAScript ja JSON5; puhdas JSON kieltää. Tämä on #1 virhe kopioitaessa ja liitettäessä koodieditori. - Lausausmerkkien sijaan heittomerkit:
{'a': 1}on virheellinen. JSON hyväksyy vain lainausmerkit avainten ja merkkijonoarvojen ympärillä. - Lainaamattomat avaimet:
{a: 1}, kelvollinen JavaScript-syntaksi, mutta virheellinen JSON. - Vaihtomerkkimerkit merkkijonossa: raaka rivinvaihto, a
taulukointi. JSON vaatii
,,. - Kommentit:
// kommenttitai/* */. Hyväksytty JSONC:ssa (config VS Code) tai JSON5, hylätty puhtaassa JSONissa. - Väärä koodaus: UTF-8 BOM tiedoston alussa, virheellinen Latin-1-sisältö muunnettu. Validaattori palauttaa usein yleisen viestin näissä tapauksissa.
- Käyttämätön rakenne:
{tai[ilman sulkemista, yleinen kun katkaiset hyötykuorman, kun kopioit ja liität.
Kuinka validaattori paikantaa virheen
Työkalu käyttää PHP:n json_decode()-komentoa JSON_THROW_ON_ERROR-lipulla. PHP
palauttaa viestin, joka sisältää sijainnin tavuina (sijainti 217), jonka muunnamme
rivi/sarake-pari laskemalla rivinvaihdot ennen siirtymää. Noin 80 merkin ote on
leikkaa sitten asema ympärille antaaksesi kontekstin. Tämä riittää yleensä tunnistamiseen
virhe: väärä lainaus, ylimääräinen pilkku, puuttuva hakasulku.
Varoitus: PHP:n ilmoittama sijainti ei aina ole täsmälleen loukkaava merkki. Hän on
usein virheen jälkeen, kun jäsentäjä on luovuttanut. Jos katkelmassa näkyy "nimi":
"Alice", }, todellinen virhe on pilkku, ei aaltosulu.
Tyypillisiä käyttötapauksia
- Vioittuneet määritykset:
composer.json,package.json,tsconfig.json, jotka estävät koontiversion käynnistymisen. Liitämme, näemme viivan, korjaamme. - Katkaistu API-vastaus: Välityspalvelin katkaisi hyötykuorman. Rakenne ei ole valmis, validaattori ilmoittaa tästä.
- Webhookin hyötykuorma: Kolmannen osapuolen palvelu lähettää virheellisesti muotoiltuja JSON-tiedostoja. Validaattori sallii huomaamaan ongelman lähettäjän puolella sukeltamatta sovelluskoodiin.
- JSON muodostettu ketjuttamalla: käytäntö välttää, mutta yleinen, erityisesti bashissa tai SQL:ssä. Validaattori näyttää lainausmerkit ilman koodinvaihtomerkkejä.
Työkalun rajoitukset
Validaattori ei tarkista skeemaa vastaan. Hän ei sano puuttuvansa kentälle
email, että arvo ei ole kokonaisluku tai että odotetun taulukon pituus ei ole oikea.
Näihin rakennetarkistuksiin käytämme JSON-skeemaa. Validaattori ei myöskään korjaa
JSON: se ei yritä lisätä puuttuvaa aaltosuljetta tai poistaa ylimääräistä pilkkua. Se on valinta
: automaattinen korjaus piilottaa liian usein todelliset virheet.
Usein kysytyt kysymykset
Mitä eroa linterillä on?
Linter menee pidemmälle: se tarkistaa myös tyylisäännöt (aakkosjärjestys, nimeämiskäytännöt), havaitsee päällekkäiset arvot, ehdottaa parannuksia. Validaattori jatkaa noudattamista syntaktinen.
JSON-ni on kelvollinen, mutta sovellukseni hylkää sen?
Tarkista koodaus (UTF-8 ilman tuoteluetteloa), palvelinpuolen kokorajoitus, odotetut tyypit. JSON syntaktisesti oikea ei välttämättä silti vastaa sovelluskaaviota.
Säilyttääkö validaattori JSON-ni?
Ei. Käsittely on synkronista palvelinpuolella ilman pysyvyyttä. Erittäin arkaluonteisille tiedoille
silti suosivat paikallista vahvistusta jq- tai PHP-komentosarjan avulla.
Pyyntöesimerkki
curl -X POST https://cdrn.fr/api/v1/tools/json-validator/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Syöteskeema
| Kenttä | Tyyppi | Pakollinen | Oletus |
|---|---|---|---|
input |
text | ✓ | – |
Päätepisteet
GET https://cdrn.fr/api/v1/tools- listaa kaikki saatavilla olevat työkalutGET https://cdrn.fr/api/v1/tools/json-validator- hakee tämän työkalun skeemanPOST https://cdrn.fr/api/v1/tools/json-validator/execute- suorittaa tämän työkalun JSON-payloadilla