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.
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.
| Cause | Looks like | Fix |
|---|---|---|
| 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 data | JSON 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": NaN | A 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.