Tech Help
Vanlige JSON-feil: avsluttende komma, anførselstegn og Unexpected token
Fiks ugyldig JSON: avsluttende komma, enkle anførselstegn, nøkler uten anførselstegn og Unexpected token. Se hvorfor JSON.parse feiler, og hvordan du validerer JSON.
De fleste JSON-feil kommer av strenge syntaksregler: avsluttende komma, enkle anførselstegn, egenskapsnavn uten anførselstegn, manglende komma, umatchede parenteser, ugyldig escape eller kommentarer.
JSON ligner et JavaScript-objekt, men er strengere. Egenskapsnavn og strenger trenger doble anførselstegn.
Hvis du ser Unexpected token, kan det rapporterte tegnet være der parsingen stoppet—ikke nødvendigvis der den opprinnelige feilen begynte.
JSON-en din er merket ugyldig. Det er vanligvis et lite syntaksproblem, ikke et ødelagt filformat. De sju feilene under forårsaker de fleste Unexpected token.
Hvorfor går JSON så lett i stykker?
JSON er et dataformat med streng syntaks. En JavaScript-objektliteral kan se lik ut og likevel være ugyldig JSON. I standard-JSON trenger egenskapsnavn og strenger doble anførselstegn, avsluttende komma er ikke tillatt, og kommentarer er ikke del av formatet.
1. Avsluttende komma
Det ekstra kommaet etter den siste egenskapen er problemet. Standard-JSON tillater det ikke.
Ugyldig
{
"name": "Alex",
"age": 30,
}
Gyldig
{
"name": "Alex",
"age": 30
}
Samme regel gjelder arrayer. Fjern kommaet etter det siste elementet.
Ugyldig
[
"red",
"green",
]
Gyldig
[
"red",
"green"
]
2. Enkle anførselstegn i stedet for doble
JavaScript godtar ofte enkle anførselstegn. JSON gjør ikke det. Både egenskapsnavn og strengverdier må bruke doble anførselstegn.
Ugyldig
{
'name': 'Alex'
}
Gyldig
{
"name": "Alex"
}
3. Egenskapsnavn uten anførselstegn
I JavaScript kan du noen ganger skrive name uten anførselstegn. I JSON må hvert egenskapsnavn være en streng med doble anførselstegn.
Ugyldig
{
name: "Alex",
age: 30
}
Gyldig
{
"name": "Alex",
"age": 30
}
4. Manglende komma mellom verdier
Egenskaper og array-elementer trenger et komma mellom seg. Parseren kan rapportere Unexpected token ved neste anførselstegn eller klamme, ikke ved det manglende kommaet.
Ugyldig
{
"name": "Alex"
"age": 30
}
Gyldig
{
"name": "Alex",
"age": 30
}
5. Manglende eller ekstra klammer og hakeparenteser
Objekter bruker { }. Arrayer bruker [ ]. Nøstet JSON feiler ofte når ] mangler, } er for mye, eller de to er byttet. Tell åpnende og lukkende par.
Ugyldig
{
"items": [1, 2
}
Gyldig
{
"items": [1, 2]
}
6. Ugyldige escape-sekvenser
Inne i en JSON-streng starter en omvendt skråstrek en escape. Sekvenser som ", \ og \n er gyldige. En Windows-sti skrevet C:\Users er det ikke: \U er ikke en lovlig JSON-escape. Doble de omvendte skråstrekene, ellers stopper parseren på det tegnet.
Ugyldig
{"file":"C:\Users\Alex"}
Gyldig
{"file":"C:\\Users\\Alex"}
7. Kommentarer i JSON
Standard-JSON har ingen kommentarer. Noen konfigurasjonsverktøy godtar // eller /* */ (JSONC, JSON5 og lignende). Det er ikke standard-JSON, og JSON.parse avviser det.
Ugyldig
{
// user name
"name": "Alex"
}
Hva betyr Unexpected token?
Parseren møtte et tegn som ikke var tillatt på den posisjonen. Det rapporterte stedet er der lesingen stoppet. Hvis du utelot et komma tidligere, kan feilen peke på neste egenskap sitt anførselstegn. Ordlyden varierer etter runtime; ikke forvent at hver nettleser skriver den samme setningen.
Hva betyr Unexpected end of JSON input?
Teksten tok slutt før verdien var ferdig. Typiske årsaker er manglende } eller ], avkuttet inndata, tom kropp eller et avbrutt API-svar. Det er ikke én enkelt feil.
Hvorfor feiler JSON.parse()?
JSON.parse() godtar bare gyldig JSON-tekst. Dette lykkes:
const text = '{"name":"Alex"}';
const data = JSON.parse(text);
Dette feiler, fordi enkle anførselstegn ikke er JSON:
const text = "{'name':'Alex'}";
JSON.parse(text);
Den nøyaktige feilmeldingen avhenger av JavaScript-runtimen. Behandle meldingen som et hint, og sjekk deretter komma, anførselstegn og parenteser nær den posisjonen.
En JavaScript-objektliteral kan se ut som { name: 'Alex' }. Gyldig JSON må se ut som { "name": "Alex" }: dobbeltanførte navn og strenger, ingen avsluttende komma, ingen kommentarer.
- JSON-tekst
- Parseren leser tokens
- Gyldige data eller Unexpected token
Slik finner du en JSON-feil raskt
Jobb i denne rekkefølgen. Ikke start med å skrive om hele filen.
- Kjør JSON gjennom en validator.
- Les den første rapporterte feilen.
- Se litt før den rapporterte posisjonen.
- Sjekk komma, særlig avsluttende og manglende.
- Sjekk anførselstegn: bare doble.
- Match { } og [ ].
- Sjekk omvendt-skråstrek-escape i strenger.
- Fjern kommentarer hvis du trenger streng JSON.
Raskt kart over vanlige rettinger:
| Problem | Rettelse |
|---|---|
| Avsluttende komma | Slett kommaet etter det siste elementet. |
| Enkle anførselstegn | Bruk doble anførselstegn for navn og strenger. |
| Nøkkel uten anførselstegn | Pakk egenskapsnavnet inn i doble anførselstegn. |
| Manglende komma | Sett et komma mellom egenskaper eller array-elementer. |
| Manglende parentes | Lukk hvert { }- og [ ]-par. |
| Ugyldig escape | Bruk en lovlig escape, eller doble omvendte skråstreker i stier. |
| Kommentar | Fjern // og /* */ for standard-JSON. |
Valider og formater JSON i nettleseren
NEXNARA Formater og sammenlign JSON kan sjekke JSON på denne enheten.
Du kan validere, pynte med 2 mellomrom, 4 mellomrom eller tabulator, minify, sammenligne to dokumenter (JSON Diff) og åpne en .json-fil. Parsing bruker JSON.parse i nettleseren, ikke eval.
Dokumenter større enn 5 MB kan føles trege. Tekst større enn 15 MB behandles ikke i nettleseren, så siden forblir responsiv.
Selve JSON-behandlingen skjer i nettleseren din. Teksten sendes ikke til en NEXNARA-server for dette verktøyet. Annonser og andre nettstedfunksjoner bruker fortsatt nettverket; det er atskilt fra behandlingen.
Trenger du å sjekke ugyldig JSON? Åpne Formater og sammenlign JSON og lim inn teksten.
FAQ
Hvorfor sier JSON-en min Unexpected token?
Parseren traff et tegn som ikke var tillatt der. Den egentlige feilen—ofte et manglende komma eller et enkelt anførselstegn—kan sitte like før den posisjonen.
Er avsluttende komma tillatt i JSON?
Nei. Standard-JSON tillater ikke komma etter den siste egenskapen eller array-elementet. JavaScript-objektliteraler gjør det ofte.
Kan JSON bruke enkle anførselstegn?
Nei. Egenskapsnavn og strenger må bruke doble anførselstegn.
Kan JSON inneholde kommentarer?
Ikke i standard-JSON. Noen verktøy godtar JSONC eller JSON5 med kommentarer; JSON.parse avviser dem likevel.
Hvorfor feiler JSON.parse()?
Strengen er ikke gyldig JSON. Typiske årsaker er avsluttende komma, enkle anførselstegn, nøkler uten anførselstegn, kommentarer eller en avkuttet verdi. Den nøyaktige meldingen avhenger av runtimen.
Hvordan sjekker jeg om JSON er gyldig?
Lim den inn i en validator som Formater og sammenlign JSON, eller kall JSON.parse i en konsoll. Hvis parsingen kaster, er teksten ikke gyldig JSON.