Unexpected token o in JSON at position 1: what it means and how to fix it

TL;DR: Validate locally, fix the first real error, validate again (no upload).

Troubleshoot Unexpected token o in JSON at position 1 quickly and validate JSON locally (no upload).

What the error means

Unexpected token o in JSON at position 1 means the parser expected valid JSON but encountered a character/token that cannot appear there. In practice, it usually means the input is not JSON (or not strict JSON), or it is incomplete.

Most common real-world causes

  • You passed an object into JSON.parse (it becomes the string [object Object]).
  • You are parsing something that is already parsed (double-parse).
  • You are parsing a non-JSON response like ok/ok\n/object.
  • A logger/debugger prepended text before the JSON payload.
  • A client library returned an object, but you treated it as JSON text.

Fast debugging steps

  • Check typeof: the value should be a string before parsing.
  • If it is an object, remove JSON.parse (or stringify before storing).
  • If it is [object Object], trace where implicit string conversion happens.

Code example (javascript)

// Classic reason for "Unexpected token o" at position 1:
JSON.parse({});
// coerces to "[object Object]" -> token "o" at position 1

// Fix: only parse strings
if (typeof value === 'string') JSON.parse(value);
else value;

Fix without uploading data

If the JSON contains sensitive data, validate and fix it locally. No Upload Tools runs 100% in your browser.

Workflow: validate -> fix the first error -> validate again -> export/convert.

FAQ

Does the exact token matter? Yes. The token often hints at the root cause: < is usually HTML, u is often undefined, and / often points to comments.

Should I just regex-fix JSON? Avoid blind regex edits. Validate after each change so you know what you fixed and what broke.

Privacy & Security
All processing happens locally in your browser. Files are never uploaded.