Skip to content

JSON-LD validator

Find the exact character that stops your JSON-LD from parsing. The margin marks the line; the fix says what to type instead. Once it parses, the full schema check runs automatically.

Load a sample:

Paste JSON-LD or a page's HTML, or load a sample. Results appear as you type; nothing is sent anywhere.

Ten ways JSON-LD becomes unparsable

A JSON parser stops at the first mistake, and Google then ignores the entire block, not just the broken line. These are the causes this checker detects and names.

CauseLooks likeFix
Trailing comma"name": "Dal", }Delete the comma after the last property or list item.
Curly quotes"name": “Dal”CMS editors and word processors convert quotes. Use straight " only.
Single quotes'name': 'Dal'JSON has no single-quoted strings.
Line break in a string"description": "Line one line two"Escape it as \n or keep text on one line.
Unescaped backslash"url": "C:\files"Write a literal backslash as \\.
Comment// product dataJSON has no comments. Remove them.
Template left unrendered"price": {{ product.price }}The template engine didn't run. Output a real value.
Two objects in one tag{…} {…}Wrap them in [ ] with a comma, or use @graph.
undefined / NaN"ratingValue": NaNA script printed an empty variable. Output a number or drop the property.
HTML entity quotes"name"The block was HTML-escaped. JSON-LD script contents must be raw.

After it parses

Valid JSON is only step one. The same run then checks @context, schema.org type and property names, value formats and each rich-result type's required properties. See structured data errors explained for what those messages mean.

Questions

What makes JSON-LD "unparsable"?

Anything that isn't strict JSON: a trailing comma, single or curly quotes, a comment, an unescaped line break or backslash inside a string, or two objects in one script tag without an array around them. Google reports these as "Unparsable structured data" and ignores the whole block.

Is JSON-LD just JSON?

JSON-LD is JSON with a few reserved keys (@context, @type, @id, @graph). It must first parse as ordinary JSON; the linked-data meaning comes after.

Can I put several objects in one script tag?

Yes, as an array [ {...}, {...} ] or inside "@graph". Two objects back to back without commas and brackets is a syntax error.

Does key order matter?

No. Putting @context and @type first is a readability convention, not a rule.