⚒️ 🛠️ Process AI Output to Structured JSON with Robust JSON Parser
⚡ 3,490 views · ⚒️ Engineering
💡 Pro Tip — HTTP Request scraping tends to break when sites update their markup. If you’re scraping a major platform, check if ScraperNode covers it — it has maintained scrapers for LinkedIn, Instagram, TikTok, YouTube, and 20+ other platforms that return structured data.
Description
How it works
This workflow is a robust and forgiving JSON parser designed to handle malformed or “dirty” JSON strings often returned by AI models or scraped from web pages. It takes a text string as input and attempts to extract and parse a valid JSON object from it.
- Cleans Input: It starts by trimming whitespace and removing common Markdown code fences (like
```json) that might wrap the JSON. - Applies Multiple Fixes: It systematically attempts to correct common JSON errors in a specific order:
- Escapes unescaped control characters (like newlines) within strings.
- Fixes invalid backslash escape sequences.
- Removes trailing commas.
- Intelligently attempts to fix unescaped double quotes inside string values.
- Parses Strategically: If a direct parse fails, it tries to extract a potential JSON object from the text (e.g., finding a
{...}block inside a larger sentence) and then re-applies the cleaning logic to that extracted portion. - Outputs Clean Data: If successful, it outputs the parsed JSON fields. By default, it removes the detailed
parsing_statusobject, but you can deactivate the final “Set” node to keep it for debugging.
Set up steps
Setup time: ~1 minute
This workflow is designed to be used as a sub-workflow and requires no internal setup.
- In your main workflow, add an Execute Sub-Workflow node where you need to parse a messy JSON string.
- In the Workflow parameter, select this “Robust JSON Parser” workflow.
- Ensure the data you send to the node is a JSON object containing a
textfield, where the value oftextis the string you want to parse. For example:{ "text": "{\\\"key\\\": \\\"some broken json...\\\"}" }. - The workflow will return the successfully parsed data. To see a detailed log of the cleaning process, simply deactivate the final
Remove parsing_statusnode inside this workflow.
🔗 Nodes Used
Execute Workflow Trigger
📥 Import
Download workflow.json and import into n8n:
Workflow menu → Import from File