AutomationFlowsGeneral › Process JSON Data in n8n (Workflow)

Process JSON Data in n8n (Workflow)

Original n8n title: JSON Processing

JSON Processing. Uses start, json. Manual trigger; 6 nodes.

Manual trigger★★★★☆ complexity6 nodesStartJSON
General Trigger: Manual Nodes: 6 Complexity: ★★★★☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "JSON Processing",
  "description": "Comprehensive JSON manipulation including parsing, stringifying, and data extraction",
  "category": "data-transformation",
  "difficulty": "intermediate",
  "estimatedTime": "10 minutes",
  "prerequisites": [
    "Basic JSON knowledge",
    "Understanding of expressions"
  ],
  "learningObjectives": [
    "Master JSON parsing and stringifying",
    "Learn complex data extraction",
    "Practice nested object manipulation"
  ],
  "nodes": [
    {
      "parameters": {},
      "id": "start",
      "name": "Start",
      "type": "n8n-nodes-base.start",
      "typeVersion": 1,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "assignments": [
          {
            "name": "rawJsonString",
            "value": "{\"order\": {\"id\": \"ORD-001\", \"customer\": {\"name\": \"John Doe\", \"email\": \"john@example.com\", \"address\": {\"street\": \"123 Main St\", \"city\": \"New York\", \"zip\": \"10001\"}}, \"items\": [{\"product\": \"Laptop\", \"price\": 999.99, \"quantity\": 1}, {\"product\": \"Mouse\", \"price\": 25.50, \"quantity\": 2}], \"total\": 1050.99, \"status\": \"pending\", \"createdAt\": \"2024-01-15T10:30:00Z\"}}"
          }
        ]
      },
      "id": "set-raw-data",
      "name": "Set Raw JSON Data",
      "type": "n8n-nodes-base.set",
      "typeVersion": 1,
      "position": [
        460,
        300
      ]
    },
    {
      "parameters": {
        "operation": "parse",
        "jsonPath": "$json.rawJsonString"
      },
      "id": "parse-order",
      "name": "Parse Order JSON",
      "type": "n8n-nodes-base.json",
      "typeVersion": 1,
      "position": [
        680,
        300
      ]
    },
    {
      "parameters": {
        "operation": "extract",
        "extractionFields": [
          {
            "name": "orderId",
            "path": "$json.data.order.id"
          },
          {
            "name": "customerName",
            "path": "$json.data.order.customer.name"
          },
          {
            "name": "customerEmail",
            "path": "$json.data.order.customer.email"
          },
          {
            "name": "shippingAddress",
            "path": "{{ $json.data.order.customer.address.street + ', ' + $json.data.order.customer.address.city + ', ' + $json.data.order.customer.address.zip }}"
          },
          {
            "name": "itemCount",
            "path": "{{ length($json.data.order.items) }}"
          },
          {
            "name": "totalQuantity",
            "path": "{{ sum($json.data.order.items.map(item => item.quantity)) }}"
          },
          {
            "name": "orderTotal",
            "path": "$json.data.order.total"
          },
          {
            "name": "orderStatus",
            "path": "$json.data.order.status"
          }
        ]
      },
      "id": "extract-order-info",
      "name": "Extract Order Info",
      "type": "n8n-nodes-base.json",
      "typeVersion": 1,
      "position": [
        900,
        300
      ]
    },
    {
      "parameters": {
        "assignments": [
          {
            "name": "processedOrder",
            "value": "{{ {orderId: $json.orderId, customer: {name: $json.customerName, email: $json.customerEmail, address: $json.shippingAddress}, summary: {items: $json.itemCount, quantity: $json.totalQuantity, total: $json.orderTotal}, status: upper($json.orderStatus), processedAt: formatDate(now(), 'yyyy-MM-dd HH:mm:ss')} }}"
          }
        ]
      },
      "id": "restructure-data",
      "name": "Restructure Data",
      "type": "n8n-nodes-base.set",
      "typeVersion": 1,
      "position": [
        1120,
        300
      ]
    },
    {
      "parameters": {
        "operation": "stringify",
        "dataPath": "$json.processedOrder",
        "indent": true
      },
      "id": "stringify-result",
      "name": "Stringify Result",
      "type": "n8n-nodes-base.json",
      "typeVersion": 1,
      "position": [
        1340,
        300
      ]
    }
  ],
  "connections": {
    "Start": {
      "main": [
        [
          {
            "node": "Set Raw JSON Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Raw JSON Data": {
      "main": [
        [
          {
            "node": "Parse Order JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Order JSON": {
      "main": [
        [
          {
            "node": "Extract Order Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Order Info": {
      "main": [
        [
          {
            "node": "Restructure Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Restructure Data": {
      "main": [
        [
          {
            "node": "Stringify Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {},
  "versionId": "1"
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

JSON Processing. Uses start, json. Manual trigger; 6 nodes.

Source: https://github.com/neul-labs/m9m/blob/main/examples/data-transformation/json-processing.json — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

Conditional Routing. Uses start, json. Manual trigger; 10 nodes.

Start, JSON
General

Array Operations. Uses start, json. Manual trigger; 5 nodes.

Start, JSON
General

Smoke Test - Multi-Step Pipeline. Uses start, json. Manual trigger; 5 nodes.

Start, JSON
General

Data Processing. Uses start, json. Manual trigger; 4 nodes.

Start, JSON
General

Smoke Test - JSON Node. Uses start, json. Manual trigger; 3 nodes.

Start, JSON