Back to Templates

JSON String Validator via Webhook

Created by

Created by: ist00dent || ist00dent

ist00dent

Last update

Last update 9 days ago

Categories

Share


This n8n template provides a simple yet powerful utility for validating if a given string input is a valid JSON format. You can use this to pre-validate data received from external sources, ensure data integrity before further processing, or provide immediate feedback to users submitting JSON strings.


🔧 How it works

  • Webhook: This node acts as the entry point for the workflow, listening for incoming POST requests. It expects a JSON body with a single property:

    • jsonString: The string that you want to validate as JSON.
  • Code (JSON Validator): This node contains custom JavaScript code that attempts to parse the jsonString provided in the webhook body.

    • If the jsonString can be successfully parsed, it means it's valid JSON, and the node returns an item with valid: true.
    • If parsing fails, it catches the error and returns an item with valid: false and the specific error message.
    • This logic is applied to each item passed through the node, ensuring all inputs are validated.
  • Respond to Webhook: This node sends the validation result (either valid: true or valid: false with an error message) back to the service that initiated the webhook request.


👤 Who is it for?

This workflow is ideal for:

  • Developers & Integrators: Pre-validate JSON payloads from external systems (APIs, webhooks) before processing them in your workflows, preventing errors.
  • Data Engineers: Ensure the integrity of JSON data before storing it in databases or data lakes.
  • API Builders: Offer a dedicated endpoint for clients to test their JSON strings for validity.
  • Customer Support Teams: Quickly check user-provided JSON configurations for errors.
  • Anyone handling JSON data: A quick and easy way to programmatically check JSON string correctness without writing custom code in every application.

📑 Data Structure

When you trigger the webhook, send a POST request with a JSON body structured as follows:

{
  "jsonString": "{\"name\": \"n8n\", \"type\": \"workflow\"}"
}

Example of an invalid JSON string:

{
  "jsonString": "{name: \"n8n\"}" // Missing quotes around 'name'
}

The workflow will return a JSON response indicating validity:

For a valid JSON string:

{
  "valid": true
}

For an invalid JSON string:

{
  "valid": false,
  "error": "Unexpected token 'n', \"{name: \"n8n\"}\" is not valid JSON"
}

⚙️ Setup Instructions

  • Import Workflow:

    • In your n8n editor, click "Import from JSON" and paste the provided workflow JSON.
  • Configure Webhook Path:

    • Double-click the Webhook node.
    • In the 'Path' field, set a unique and descriptive path (e.g., /validate-json).
  • Activate Workflow:

    • Save and activate the workflow.

📝 Tips

This JSON validator workflow is a solid starting point. Consider these enhancements:

  • Enhanced Error Feedback:

    • Upgrade: Add a Set node after the Code node to format the error message into a more user-friendly string before responding.
    • Leverage: Make it easier for the caller to understand the issue.
  • Logging Invalid Inputs:

    • Upgrade: After the Code node, add an IF node to check if valid is false. If so, branch to a node that logs the invalid jsonString and error to a Google Sheet, database, or a logging service.
    • Leverage: Track common invalid inputs for debugging or improvement.
  • Transforming Valid JSON:

    • Upgrade: If the JSON is valid, you could add another Function node to parse the jsonString and then operate on the parsed JSON data directly within the workflow.
    • Leverage: Use this validator as the first step in a larger workflow that processes JSON data.
  • Asynchronous Validation:

    • Upgrade: For very large JSON strings or high-volume requests, consider using a separate queueing mechanism (e.g., RabbitMQ, SQS) and an asynchronous response pattern.
    • Leverage: Prevent webhook timeouts and improve system responsiveness.