Errors · JSON

# Expecting ‘,’ delimiter

A comma is missing between two values — after a property, or between two items of an array. Python calls it a delimiter; V8 says which two characters it expected; both point one token past the break.

no signup · runs entirely in your browser · ⌘V works anywhere on this page

## What each parser says

The sample below, unchanged, through three parsers. The message is the same break in three wordings; the line or position each names is where the parser gave up, not always where the break is.

Expected ',' or '}' after property value in JSON at position 20 (line 3 column 3)

Expecting ',' delimiter: line 3 column 3 (char 20)

jq: parse error: Expected separator between values at line 3, column 10

## The fix, measured

{ "id": "ord_1" "status": "paid", "items": [{"sku": "A", "qty": 1} {"sku": "B", "qty": 2}] }{ "id": "ord_1", "status": "paid", "items": [{"sku": "A", "qty": 1}, {"sku": "B", "qty": 2}] }

2 fixes, both named “Insert missing comma after value”.

## Where the parser points

Python and V8 report the line the next value starts on, jq the column of that value: all three point one token past the break, because a parser only knows something is wrong when it meets what should not be there. The dot on the page sits on the line that lost its comma.

## The sample

What the first sample opens — a real file, not an illustration written for this page.

```
{
  "id": "ord_1"
  "status": "paid",
  "items": [{"sku": "A", "qty": 1} {"sku": "B", "qty": 2}]
}
```

## Questions

### Why does the error point at the wrong line?

The parser read the value before the missing comma without complaint; it fails on the next token, which is often on the next line. The line it names is one past the break.

### Is it always a comma?

Almost always. The same message appears when a value is followed by anything a parser did not expect — a stray word, a second value, a colon — so the page names each case on its line rather than assuming.

### Does the fix change anything else?

No. A comma is inserted after the value the parser stopped at; the rest of the text stays byte for byte, and undo in the app puts it back.

## Behind this page

## Try it on the file that broke your afternoon.

free while in alpha · no signup

---

Canonical: https://unstringify.com/errors/expecting-delimiter
