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_status
object, 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
text
field, where the value of text
is 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_status
node inside this workflow.