fixmint
DA

De JSON-fejl bag de fleste parse-fejl, og hvordan du retter dem

Af · · opdateret 8. november 2026 · 5 min. læsning

De fleste JSON-fejl skyldes en kort liste af fejl: et efterstillet komma, en streng i enkelte anførselstegn, en kommentar, en nøgle uden anførselstegn, en værdi som NaN eller undefined, eller buede anførselstegn kopieret fra et dokument. JSON er strengere end det JavaScript, det minder om, så kode, der ser rigtig ud for et menneske, kan blive afvist af en parser. Fejlmeddelelsen peger på en linje og en kolonne, og rettelsen ligger normalt på eller lige før det sted.

Formatér JSONJSON kan ikke læsesPrøv gratis

Reglerne JSON håndhæver

Et JSON-dokument er én værdi: et objekt i klammeparenteser, et array i firkantede parenteser, en streng, et tal, true, false eller null. Inde i disse værdier gælder følgende:

  • Alle nøgler og alle strenge bruger lige dobbelte anførselstegn, for eksempel „name“.
  • Komma adskiller elementer, og der må ikke stå et komma efter det sidste element i et objekt eller array.
  • Tal må ikke have et foranstillet plustegn, og NaN, Infinity og undefined er hverken gyldige tal eller gyldige værdier.
  • Kommentarer er slet ikke tilladt.
  • Nøgler skal være strenge, så en nøgle uden anførselstegn, for eksempel name:, er ugyldig.

Nogle parsere accepterer et par af disse som standard, og nogle værktøjer accepterer JSON med kommentarer for nemhedens skyld. Den overbærenhed skjuler problemet, indtil filen når til en strengere læser, så skriv den strikse form.

Sådan læser du fejlmeddelelsen

Parsere melder det første sted, hvor de ikke kunne fortsætte. Meddelelsen nævner problemet og angiver en position, typisk en linje og en kolonne. Her er en lille fil med et efterstillet komma i et array og endnu et efter den sidste egenskab:

{
  "name": "Ada",
  "tags": ["a", "b",],
}

Python melder dette som „Illegal trailing comma before end of array: line 3 column 20“. Formuleringen varierer fra værktøj til værktøj, og nogle ældre parsere skriver blot „Unexpected token“ med en tegnforskydning. Gå til den angivne position, og kig så på tegnet lige før den. Den egentlige fejl er ofte et komma, et anførselstegn eller en klamme et eller to tegn tidligere end det angivne sted.

Her er nogle flere meddelelser fra Pythons parser, og hvad de typisk betyder:

  • „Expecting property name enclosed in double quotes“ ved '{'a': 1}' betyder en nøgle i enkelte anførselstegn eller uden anførselstegn.
  • „Expecting value“ på en position, hvor du forventede et tal eller en streng, betyder ofte et buet anførselstegn, fordi parseren ser det som et ukendt tegn.
  • „Expecting ',' delimiter“ betyder typisk et manglende komma mellem to elementer eller en kommentar midt i data.

Buede anførselstegn og kopieret tekst

Buede anførselstegn er det mest forvirrende tilfælde, fordi de næsten ser ud som lige anførselstegn. En JSON-fil, der er kopieret fra et tekstbehandlingsprogram, en webside eller en chatbesked, kan indeholde buede dobbelte anførselstegn. Filen ser rigtig ud for dig og kan ikke parses, fordi parseren ser “x” som et ukendt tegn i stedet for en strengafgrænser.

Skjulte tegn giver den samme slags fejl. Et hårdt mellemrum mellem to værdier er ikke mellemrum for parseren. Fjern skjulte tegn, før du prøver at rette strukturen i hånden, og ret derefter anførselstegnene. Guiden om buede anførselstegn forklarer, hvordan du sikkert retter dem.

Enkelte anførselstegn, kommentarer og nøgler uden anførselstegn

Mange udviklere skriver JSON-lignende data i et sprog, der tillader mere:

  • Enkelte anførselstegn er gyldige i JavaScript- og Python-literaler, men JSON kræver dobbelte anførselstegn. Erstat {'a': 1} med {"a": 1}.
  • Kommentarer som // eller /* */ skal fjernes. Har du brug for noter, så læg dem i et separat felt, eller brug et format, der er lavet til konfigurationsfiler.
  • Nøgler uden anførselstegn er almindelige i JavaScript-objektliteraler. Tilføj anførselstegnene.
  • NaN og undefined er ikke JSON. Brug null for en manglende værdi, eller en streng, hvis værdien er tekst.

Vær forsigtig med en generel søg-og-erstat. Hvis du ændrer hvert enkelt anførselstegn til et dobbelt, går enhver streng med et apostrof i stykker, for eksempel „Ada's notes“. Gennemse alle træffere i Find og erstat, inden du gør noget, så du kan se, hvilke anførselstegn der ville blive ændret.

Ret strukturen trin for trin

  1. Indsæt filen i Formatér JSON. Formatering gør strukturen synlig, og fejlen viser sin linje og kolonne. Tryk derefter på Reparér, som fjerner kommentarer og efterstillede komma. Den ændrer ikke enkelte eller buede anførselstegn, så dem retter du selv.
  2. Ret kun den første fejl, og kontrollér igen. Én fejl kan give flere fejl længere nede.
  3. Kontrollér, at hver åbnende klamme eller parentes har en lukkende, og at indlejringen er, som du har tænkt dig.
  4. Valider den færdige fil med den parser, dit program bruger, ikke kun med et webværktøj. Parsere er lidt forskellige.

En fil, der kan parses, er ikke nødvendigvis den fil, du tænkte på. Kontrollér den med JSON Schema-validator for at fange et manglende felt eller en værdi af forkert type, eller Sammenlign JSON for at se, hvad der er ændret mellem versionerne.

Særlige tilfælde

  • Efterstillede komma i genererede filer. Nogle værktøjer skriver dem. Hvis du bygger JSON i hånden ved at sammensætte strenge, så brug serialiseringsfunktionen i dit sprog, som skriver gyldigt output.
  • Dublerede nøgler. JSON tillader dem, men de fleste parsere beholder kun den sidste værdi. Dublerede nøgler er en fejl, der bare venter på at ske.
  • Store tal. Meget store heltal kan miste præcision i nogle parsere, så gem identifikatorer som strenge, hvis de er længere, end parseren kan gengive nøjagtigt. Guiden om CSV til JSON gør den samme pointe om ID'er.

Hurtige svar

Hvorfor fejler min JSON, når den ser rigtig ud?

De typiske årsager er et efterstillet komma, enkelte anførselstegn, en kommentar eller buede anførselstegn kopieret fra et dokument. Tjek positionen i fejlmeddelelsen og tegnet lige før den.

Kan JSON have kommentarer?

Nej. JSON-standarden tillader ikke kommentarer. Fjern dem, eller flyt noterne over i et felt for sig selv. Knappen Reparér i Formatér JSON fjerner dem for dig.

Hvad skal jeg bruge i stedet for undefined i JSON?

Brug null, når en værdi bevidst mangler, eller udelad nøglen helt. undefined er en JavaScript-værdi og har ingen JSON-repræsentation.

Oversat fra Engelsk original med AI-hjælp.

Kommentarer

    Ingen kommentarer endnu. Vær den første.

    Din bedømmelse (valgfri)

    Din e-mail vises eller gemmes aldrig.

    Forside til How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 sider om de menneskelige, økonomiske og strategiske fordele, der forbliver knappe, når AI kan klare de fleste kognitive opgaver.

    $3.84Køb på GumroadPå engelsk