5 Dažiausios JSON Klaidos (ir Kaip Jas Sutaisyti)

By JSONValidator.dev Komanda 2025-07-04

Įvadas: Kodėl JSON Klaidos Yra Tokios Dažnos

JSON yra viena populiariausių duomenų formatų API, konfigūracijoms ir duomenų mainams. Tačiau net ir maža klaida JSON faile gali sulaužyti programas, sustabdyti integracijas arba apsunkinti klaidų paiešką. Štai penkios dažniausiai pasitaikančios JSON klaidos (su realiais pavyzdžiais) ir jų sprendimo būdai.

1. Paskutinis Kablelis

JSON formate po paskutinio elemento objekte ar masyve kablelis nėra leidžiamas. Tai dažna klaida redaguojant ranka.

Before:
{
  "name": "Alice",
  "age": 30,
}
After:
{
  "name": "Alice",
  "age": 30
}
Patarimas: Daugelis kodo redaktorių (ir mūsų internetiniai JSON įrankiai) automatiškai paryškins arba ištaisys paskutinį kablelį.

2. Viengubos vs. Dvigubos Kabutės

JSON reikalauja, kad visi raktai ir teksto reikšmės būtų pateikti tik su dvigubomis kabutėmis. Viengubos kabutės nėra leistinos.

Before:
{
  'name': 'Bob'
}
After:
{
  "name": "Bob"
}
Nenaudokite viengubų kabučių – net jei jūsų programavimo kalba jas leidžia! JSON sintaksė yra griežtesnė nei JavaScript ar Python.

3. Neišvengti Simboliai

Tam tikri simboliai (pvz., naujos eilutės, tabuliacijos ženklai ar kabutės tekste) privalo būti tinkamai išvengti atgaliniu brūkšniu.

Before:
{
  "note": "This will break: "hello""
}
After:
{
  "note": "This will work: \"hello\""
}
Jeigu matote klaidas kaip 'unexpected token' arba 'unterminated string', tikrinkite, ar nepalikote trūkstamų išvengimų savo duomenyse.

4. Trūkstami Skliaustai ar Laužtiniai Laužtinių

Kiekvienas atidaromas skliaustas ar laužtinis laužtinis turi būti uždarytas atitinkamu skliaustu ar uždarymo laužtiniu. Trūkstamas arba papildomas skliaustas visada sukels neleistiną JSON.

Before:
{
  "name": "Eve",
  "items": [1, 2, 3
}
After:
{
  "name": "Eve",
  "items": [1, 2, 3]
}
Naudokite internetinį JSON tikrintuvą, kad iškart aptiktumėte trūkstamus arba papildomus skliaustus.

5. Duomenų Tipų Klaidos

Skaičiai, loginės reikšmės ir null neturi būti pateikiami kabutėse. Pavyzdžiui, 42 yra galiojanti reikšmė, o "42" – tekstas, o ne skaičius.

  • "true" (tekstas) nėra tas pats, kas true (loginė reikšmė)
  • "null" (tekstas) nėra tas pats, kas null (reikšmė)
  • "42" (tekstas) nėra tas pats, kas 42 (skaičius)
Before:
{
  "age": "42",
  "active": "true"
}
After:
{
  "age": 42,
  "active": true
}

Kaip Mūsų Įrankis Gali Padėti

Įklijuokite savo JSON į mūsų tikrintuvą arba taisymo įrankį, kad akimirksniu aptiktumėte ir ištaisytumėte šias klaidas. Mūsų įrankiai tiksliai parodys problemą – ir net pasiūlys automatinį taisymą daugeliu atvejų.