Handle multidimensional arrays with function item

Hey,
i have a multidimensional array, for example:

It should loop for the first array level (food menus) and then loop for each dish and write it in the database with a mysql node.

I cant make it work :frowning: its always only looping for the first array level.

Hey @plSln,

Where is the array coming from? Is it hardcode in a function node or is it a response from a http request?

Hey Ricardo,
its a modified http request.

Could you provide an example of the data without any modification?

these nodes i use to get it the structure i need:

{
  "nodes": [
    {
      "parameters": {},
      "name": "each Food",
      "type": "n8n-nodes-base.functionItem",
      "typeVersion": 1,
      "position": [
        1530,
        120
      ]
    },
    {
      "parameters": {
        "functionCode": "return item;"
      },
      "name": "each Item",
      "type": "n8n-nodes-base.functionItem",
      "typeVersion": 1,
      "position": [
        1220,
        120
      ]
    },
    {
      "parameters": {
        "functionCode": "const newItems = [];\nfor (const item of items) {\n newItems.push(item.json);\n}\nreturn newItems;\n"
      },
      "name": "Split",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        1020,
        120
      ]
    },
    {
      "parameters": {
        "functionCode": "// remove older days, where you can not order for sure\n\nfunction getMonday(d) {\n  d = new Date(d);\n  var day = d.getDay(),\n      diff = d.getDate() - day + (day == 0 ? -6:1); // adjust when day is sunday\n  return new Date(d.setDate(diff));\n}\n\nfunction addDays(date, days) {\n  var result = new Date(date);\n  result.setDate(result.getDate() + days);\n  return result;\n}\n\nconst days = [];\n\nfor (let [key, value] of Object.entries(item)) {\n if (!value.includes(\"€\") && key !== \"menu\") delete item[key];\n}\n\nfor (let [key, value] of Object.entries(item)) {\n if (key !== \"menu\") {\n     const day = Object();\n     day.menu = item.menu;\n     day.dayname = key;\n     var date_monday = getMonday(new Date);\n     switch (key) {\n       case \"Montag\":\n         day.daydate = getMonday(new Date).toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Dienstag\":\n         var date_day = addDays(date_monday,1);\n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Mittwoch\":\n         var date_day = addDays(date_monday,2);\n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Donnerstag\":\n         var date_day = addDays(date_monday,3);\n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Freitag\":\n         var date_day = addDays(date_monday,4);\n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Samstag\":\n         var date_day = addDays(date_monday,5);        \n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Sonntag\":\n         var date_day = addDays(date_monday,6);        \n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n     } \n     day.gericht = value.split(\";\")[0].replace(\"VEGGIE\",\"🌱- \").replace(\"VEGAN\",\"🌱🌱 - \").replace(\"mit\",\" - mit\").replace(\"A1\",\"\").replace(\"6\",\"\").replace(\"1\",\"\").trim();\n     var myRegexp = /(\\d*\\.\\d*\\s€)/g;\n     var match = myRegexp.exec(value);\n     match = (match !== null && match.length === 2) ? match[1] : \"\";\n     day.preis = match;\n     delete item[key];\n     days.push(day)\n }\n}\ndelete item[\"menu\"]\nitem.json = days;\nreturn item;"
      },
      "name": "prepare Data",
      "type": "n8n-nodes-base.functionItem",
      "typeVersion": 1,
      "position": [
        820,
        120
      ],
      "color": "#B3AA89"
    },
    {
      "parameters": {
        "functionCode": "const newItems = [];\nvar i = 0;\nfor (const item of items[0].json[0]) {\n  var is_named = false\n  if (item[0] === \"\") {\n     if (i < 7) { \n       item.menu = \"Menü \" + i\n     } else if (i == 7) {\n       item.menu = \"Wochenmenü\"\n     } else if (i > 7 && i < 12) {\n       item.menu = \"S\" + (i - 7)\n     } else if (i > 11) {\n       item.menu = \"W\" + (i - 11)\n     } \n   } else {\n   item.menu =  item[0].split(\"\\n\").join(\"\");\n   is_named = true\n   }\n   if (i !== 0) newItems.push({json: item});\n   if (!is_named) i++;\n}\nreturn newItems;\n"
      },
      "name": "Split & Manage Menus",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        620,
        120
      ]
    }
  ],
  "connections": {
    "each Item": {
      "main": [
        [
          {
            "node": "each Food",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split": {
      "main": [
        [
          {
            "node": "each Item",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "prepare Data": {
      "main": [
        [
          {
            "node": "Split",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split & Manage Menus": {
      "main": [
        [
          {
            "node": "prepare Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

@plSln how is the structure of the table you want to insert the data in.

menu, dayname, daydate, gericht, preis is it like this?

1 Like

yes, these are the columns in the table

Try it like this:

{
  "nodes": [
    {
      "parameters": {},
      "name": "Start",
      "type": "n8n-nodes-base.start",
      "typeVersion": 1,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "functionCode": "const newItems = [];\nfor (const item of items) {\n newItems.push(item.json);\n}\nreturn newItems;\n"
      },
      "name": "Split",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        1040,
        300
      ]
    },
    {
      "parameters": {
        "functionCode": "// remove older days, where you can not order for sure\n\nfunction getMonday(d) {\n  d = new Date(d);\n  var day = d.getDay(),\n      diff = d.getDate() - day + (day == 0 ? -6:1); // adjust when day is sunday\n  return new Date(d.setDate(diff));\n}\n\nfunction addDays(date, days) {\n  var result = new Date(date);\n  result.setDate(result.getDate() + days);\n  return result;\n}\n\nconst days = [];\n\nfor (let [key, value] of Object.entries(item)) {\n if (!value.includes(\"€\") && key !== \"menu\") delete item[key];\n}\n\nfor (let [key, value] of Object.entries(item)) {\n if (key !== \"menu\") {\n     const day = Object();\n     day.menu = item.menu;\n     day.dayname = key;\n     var date_monday = getMonday(new Date);\n     switch (key) {\n       case \"Montag\":\n         day.daydate = getMonday(new Date).toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Dienstag\":\n         var date_day = addDays(date_monday,1);\n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Mittwoch\":\n         var date_day = addDays(date_monday,2);\n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Donnerstag\":\n         var date_day = addDays(date_monday,3);\n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Freitag\":\n         var date_day = addDays(date_monday,4);\n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Samstag\":\n         var date_day = addDays(date_monday,5);        \n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n       case \"Sonntag\":\n         var date_day = addDays(date_monday,6);        \n         day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n       break;\n     } \n     day.gericht = value.split(\";\")[0].replace(\"VEGGIE\",\"🌱- \").replace(\"VEGAN\",\"🌱🌱 - \").replace(\"mit\",\" - mit\").replace(\"A1\",\"\").replace(\"6\",\"\").replace(\"1\",\"\").trim();\n     var myRegexp = /(\\d*\\.\\d*\\s€)/g;\n     var match = myRegexp.exec(value);\n     match = (match !== null && match.length === 2) ? match[1] : \"\";\n     day.preis = match;\n     delete item[key];\n     days.push(day)\n }\n}\ndelete item[\"menu\"]\nitem.json = days;\nreturn item;"
      },
      "name": "prepare Data",
      "type": "n8n-nodes-base.functionItem",
      "typeVersion": 1,
      "position": [
        840,
        300
      ],
      "color": "#B3AA89"
    },
    {
      "parameters": {
        "functionCode": "const newItems = [];\nvar i = 0;\nfor (const item of items[0].json.data[0][0]) {\n  var is_named = false\n  if (item[0] === \"\") {\n     if (i < 7) { \n       item.menu = \"Menü \" + i\n     } else if (i == 7) {\n       item.menu = \"Wochenmenü\"\n     } else if (i > 7 && i < 12) {\n       item.menu = \"S\" + (i - 7)\n     } else if (i > 11) {\n       item.menu = \"W\" + (i - 11)\n     } \n   } else {\n   item.menu =  item[0].split(\"\\n\").join(\"\");\n   is_named = true\n   }\n   if (i !== 0) newItems.push({json: item});\n   if (!is_named) i++;\n}\nreturn newItems;\n"
      },
      "name": "Split & Manage Menus",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        640,
        300
      ]
    },
    {
      "parameters": {
        "functionCode": "items[0].json.data = [\n  [\n    [\n      {\n        \"0\": \"\",\n        \"Montag\": \"\",\n        \"Dienstag\": \"\",\n        \"Mittwoch\": \"\",\n        \"Donnerstag\": \"\",\n        \"Freitag\": \"\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"VEGGIEExotische Rote- Bete- Suppe mit Apfel, Ingwer, Karotten und Frischkäse6;A1;G;I\",\n        \"Dienstag\": \"VEGANSchwarzwurzelcremesuppe mit gerösteten Sonnenblumenkernen, dazu SteinofenbaguetteA1;A2;A3;I\",\n        \"Mittwoch\": \"Linseneintopfsüß- sauermit Wiener WürstchenA1;G;I:S;T\",\n        \"Donnerstag\": \"VEGGIEKarotten- Ingwer- Orangen- Cremesuppe,dazu PizzabrotA1;C;G;I\\n \\n\\n\\n 3.75 €\",\n        \"Freitag\": \"Kesselgulaschmit KartoffelwürfelA1;I;R;S\\n \\n\\n\\n 3.75 €\",\n        \"Samstag\": \"Fischfiletmit Gemüseund KartoffelpüreeA1;D;G;I\\n \\n\\n\\n 4.25 €\",\n        \"Sonntag\": \"Gemüseeintopfmit HähnchenstreifenA1;G;I;T\\n \\n\\n\\n 3.85 €\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"Schweinegeschnetzeltes \\\"Züricher Art\\\"mit Brösel- SpätzleA1;C;G;I;S\",\n        \"Dienstag\": \"Krautroulademit deftiger Soßeund PetersilienkartoffelnA1;C;G;I;S\",\n        \"Mittwoch\": \"VEGGIEÜberbackener Chicorée mit Hollandaise und Käse überbacken, dazu GnocchiA1;A3;C;F;G;I\",\n        \"Donnerstag\": \"Hausgemachte Eierkuchenmit Zimt, Zucker und SchokoladensoßeA1;C;G\\n \\n\\n\\n 3.95 €\",\n        \"Freitag\": \"VEGGIEGebackener Blumenkohl mit Tomaten- Hollandaise und GnocchiA1;A3;C;F;G;I\\n \\n\\n\\n 4.25 €\",\n        \"Samstag\": \"Szegediner Gulaschmit KnödelnA1;C;G;I;S\\n \\n\\n\\n 4.05 €\",\n        \"Sonntag\": \"Schnitzelmit Bohnengemüseund KartoffelnA1;C;G;I;S\\n \\n\\n\\n 4.25 €\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"Seelachsfilet mit Meerrettich- Kräuter- Kruste, Hollandaise und Dill- KartoffelnA1;A3;C;D;F;G;I\",\n        \"Dienstag\": \"Zitronen- Hähnchenkeulemit gebratenem GemüsereisA1;G;I;T\",\n        \"Mittwoch\": \"Welsfiletmit Dijon- Senfsoße, Brokkoli und Kartoffelpüree6;A1;C;G;I;S\",\n        \"Donnerstag\": \"Schweineroulademit Rotkohlund Klöße6;A1;I;J;S\\n \\n\\n\\n 4.45 €\",\n        \"Freitag\": \"Pulled Porkmit Ofengemüse und Kartoffelgratin, dazu BBQ- Dip6;A1;B;F;G;I;J;K;S\\n \\n\\n\\n 4.45 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"VEGGIEEieromelette mit Ricotta- Käsefüllung, dazu Bio- Brokkoli und SüßkartoffelstampfA1;C;G;I\",\n        \"Dienstag\": \"SpaghettiBolognese,dazu Käse1;A1;G;I;R;S\\n \\n\\n\\n 1x bestellt\",\n        \"Mittwoch\": \"Königsberger Klopsemit Kapernsoßeund ReisA1;G;I;S\",\n        \"Donnerstag\": \"Gebratene Hähnchenbrustmit frischem Gemüseund SchwenkkartoffelnA1;G;I;T\\n \\n\\n\\n 4.45 €\",\n        \"Freitag\": \"Buntbarschfiletin Limettenbuttersoße mit Linsenrisotto und rustikalem GemüseA1;A3;C;D;F;H;I\\n \\n\\n\\n 4.45 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"Spirellimit Tomatensoßeund JägerschnitzelA1;A2;C;I;J;S\",\n        \"Dienstag\": \"Hausgemachter Schweizer Rösti mit Räucherlachs, Zucchinigemüse und Käse überbacken, dazu Joghurt- Tomaten- DipA1;C;D;G\\n \\n\\n\\n 1x bestellt\",\n        \"Mittwoch\": \"Prager Schwarzbiergulaschmit Rotkohl und böhmischen Knödeln6;A1;C;G;I;S\",\n        \"Donnerstag\": \"Hackbällchen- Champignon- Pfannemit Zwiebeln und Tomaten- ReisA1;C;G;I;J;T\\n \\n\\n\\n 4.05 €\",\n        \"Freitag\": \"Deftige Krautnudelnmit Salami, dazu KäseA1;G;I;T\\n \\n\\n\\n 4.05 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"Nürnberger Würstchenmit Sauerkrautund KartoffelpüreeA1;G;I;S\",\n        \"Dienstag\": \"VEGGIERicotta- Spinat- Cannelloni mit Tomatenconcassee und BrokkoliA1;C;G;I\\n \\n\\n\\n 2x bestellt\",\n        \"Mittwoch\": \"Bauernfrühstückmit Schinkenstreifen und Essiggurke6;A1;C;G;S\",\n        \"Donnerstag\": \"Makkaronimit Tomatensoße, Jagdwurst- und Salamiwürfel, dazu Käse1;A1;G;I;J;S\\n \\n\\n\\n 4.05 €\",\n        \"Freitag\": \"Paniertes Putenschnitzel mit Buttermöhren und PetersilienkartoffelnA1;C;G;I;T\\n \\n\\n\\n 4.45 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"X\\nX\\nL\\n-\\nM\\ne\\nn\\nü\",\n        \"Montag\": \"Schweinegeschnetzeltes \\\"Züricher Art\\\"mit Brösel- SpätzleA1;C;G;I;S\",\n        \"Dienstag\": \"SpaghettiBolognese,dazu Käse1;A1;G;I;R;S\",\n        \"Mittwoch\": \"Linseneintopfsüß- sauermit Wiener WürstchenA1;G;I:S;T\",\n        \"Donnerstag\": \"Makkaronimit Tomatensoße, Jagdwurst- und Salamiwürfel, dazu Käse1;A1;G;I;J;S\\n \\n\\n\\n 4.85 €\",\n        \"Freitag\": \"Deftige Krautnudelnmit Salami, dazu KäseA1;G;I;T\\n \\n\\n\\n 4.85 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"F\\ni\\nt\\nM\\ne\\n \\nM\\ne\\nn\\nü\",\n        \"Montag\": \"Stroganoff 2.0Beefgeschnetzeltes mit grünen Bohnen, Vollkornspirelli und pfeffriger SoßeA1;F;D;H1;I;K;R\",\n        \"Dienstag\": \"Seelachs im KräutermantelSeelachs mit Bulgur- Linsencurry und PaprikaA1;D;K\",\n        \"Mittwoch\": \"Sweet Potato ChickenHuhn mit cremiger Spinatsauce und KichererbsenA1;G;H1;K;T\",\n        \"Donnerstag\": \"Spaghetti TunaVollkornspagetti mit Thunfisch und TomatensauceA1;D;G;K\\n \\n\\n\\n 4.95 €\",\n        \"Freitag\": \"kalter Quinoa Linsensalat mit Hähnchen, Zucchini, Karotten, Paprika und Zitronen- VinaigretteL;T\\n \\n\\n\\n 4.95 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"Entenkeulemit gebratenem Rotkohl und Klöße6;A1;I;T\",\n        \"Dienstag\": \"Entenkeulemit gebratenem Rotkohl und Klöße6;A1;I;T\",\n        \"Mittwoch\": \"Entenkeulemit gebratenem Rotkohl und Klöße6;A1;I;T\",\n        \"Donnerstag\": \"Entenkeulemit gebratenem Rotkohl und Klöße6;A1;I;T\\n \\n\\n\\n 6.95 €\",\n        \"Freitag\": \"Entenkeulemit gebratenem Rotkohl und Klöße6;A1;I;T\\n \\n\\n\\n 6.95 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"Omega 3 Bowl - Räucherlachs auf knackigen Blattsalaten mit Gurke, Tomate und Rucola, dazu Frischkäsedressing D;G;M\",\n        \"Dienstag\": \"Omega 3 Bowl - Räucherlachs auf knackigen Blattsalaten mit Gurke, Tomate und Rucola, dazu Frischkäsedressing D;G;M\",\n        \"Mittwoch\": \"Omega 3 Bowl - Räucherlachs auf knackigen Blattsalaten mit Gurke, Tomate und Rucola, dazu Frischkäsedressing D;G;M\",\n        \"Donnerstag\": \"Omega 3 Bowl - Räucherlachs auf knackigen Blattsalaten mit Gurke, Tomate und Rucola, dazu Frischkäsedressing D;G;M\\n \\n\\n\\n 4.99 €\",\n        \"Freitag\": \"Omega 3 Bowl - Räucherlachs auf knackigen Blattsalaten mit Gurke, Tomate und Rucola, dazu Frischkäsedressing D;G;M\\n \\n\\n\\n 4.99 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"Gebratene Hähnchenbruststreifen mit Honig glasiert, Blattsalate, Tomaten, Gurken, Paprika und Rucola, dazu Joghurtdressing mit Bio- Joghurt 1;G;K;T\",\n        \"Dienstag\": \"Gebratene Hähnchenbruststreifen mit Honig glasiert, Blattsalate, Tomaten, Gurken, Paprika und Rucola, dazu Joghurtdressing mit Bio- Joghurt 1;G;K;T\",\n        \"Mittwoch\": \"Gebratene Hähnchenbruststreifen mit Honig glasiert, Blattsalate, Tomaten, Gurken, Paprika und Rucola, dazu Joghurtdressing mit Bio- Joghurt 1;G;K;T\",\n        \"Donnerstag\": \"Gebratene Hähnchenbruststreifen mit Honig glasiert, Blattsalate, Tomaten, Gurken, Paprika und Rucola, dazu Joghurtdressing mit Bio- Joghurt 1;G;K;T\\n \\n\\n\\n 4.89 €\",\n        \"Freitag\": \"Gebratene Hähnchenbruststreifen mit Honig glasiert, Blattsalate, Tomaten, Gurken, Paprika und Rucola, dazu Joghurtdressing mit Bio- Joghurt 1;G;K;T\\n \\n\\n\\n 4.89 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"Chefsalat - Gemischter Salat mit Gurken, Tomaten, Schinken, geriebenem Gouda und Ei, dazu French- Vinaigrette 1;C;G;J;M;S\",\n        \"Dienstag\": \"Chefsalat - Gemischter Salat mit Gurken, Tomaten, Schinken, geriebenem Gouda und Ei, dazu French- Vinaigrette 1;C;G;J;M;S\",\n        \"Mittwoch\": \"Chefsalat - Gemischter Salat mit Gurken, Tomaten, Schinken, geriebenem Gouda und Ei, dazu French- Vinaigrette 1;C;G;J;M;S\",\n        \"Donnerstag\": \"Chefsalat - Gemischter Salat mit Gurken, Tomaten, Schinken, geriebenem Gouda und Ei, dazu French- Vinaigrette 1;C;G;J;M;S\\n \\n\\n\\n 4.79 €\",\n        \"Freitag\": \"Chefsalat - Gemischter Salat mit Gurken, Tomaten, Schinken, geriebenem Gouda und Ei, dazu French- Vinaigrette 1;C;G;J;M;S\\n \\n\\n\\n 4.79 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"Quinoa- Rote- Linsen- Salat mit Apfel, Paprika, gebackenem Feta, Champignons und Blattsalat, dazu Senfvinaigrette G;J;M\",\n        \"Dienstag\": \"Quinoa- Rote- Linsen- Salat mit Apfel, Paprika, gebackenem Feta, Champignons und Blattsalat, dazu Senfvinaigrette G;J;M\",\n        \"Mittwoch\": \"Quinoa- Rote- Linsen- Salat mit Apfel, Paprika, gebackenem Feta, Champignons und Blattsalat, dazu Senfvinaigrette G;J;M\",\n        \"Donnerstag\": \"Quinoa- Rote- Linsen- Salat mit Apfel, Paprika, gebackenem Feta, Champignons und Blattsalat, dazu Senfvinaigrette G;J;M\\n \\n\\n\\n 4.89 €\",\n        \"Freitag\": \"Quinoa- Rote- Linsen- Salat mit Apfel, Paprika, gebackenem Feta, Champignons und Blattsalat, dazu Senfvinaigrette G;J;M\\n \\n\\n\\n 4.89 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"D\\ne\\ns\\ns\\ne\\nr\\nt\",\n        \"Montag\": \"Cheesecake- Creme mit Salzkaramellsoße und Mandelcrumble A1;C;G;H1\",\n        \"Dienstag\": \"Cheesecake- Creme mit Salzkaramellsoße und Mandelcrumble A1;C;G;H1\",\n        \"Mittwoch\": \"Cheesecake- Creme mit Salzkaramellsoße und Mandelcrumble A1;C;G;H1\",\n        \"Donnerstag\": \"Cheesecake- Creme mit Salzkaramellsoße und Mandelcrumble A1;C;G;H1\\n \\n\\n\\n 0.95 €\",\n        \"Freitag\": \"Cheesecake- Creme mit Salzkaramellsoße und Mandelcrumble A1;C;G;H1\\n \\n\\n\\n 0.95 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"Wrap mit Spicy Mayo, Roter Bete, geräucherter Putenbrust, frischem Blattsalat, Gurke und Hirtenkäse 1;6;7;C;G;M;K;T\",\n        \"Dienstag\": \"Wrap mit Spicy Mayo, Roter Bete, geräucherter Putenbrust, frischem Blattsalat, Gurke und Hirtenkäse 1;6;7;C;G;M;K;T\",\n        \"Mittwoch\": \"Wrap mit Spicy Mayo, Roter Bete, geräucherter Putenbrust, frischem Blattsalat, Gurke und Hirtenkäse 1;6;7;C;G;M;K;T\",\n        \"Donnerstag\": \"Wrap mit Spicy Mayo, Roter Bete, geräucherter Putenbrust, frischem Blattsalat, Gurke und Hirtenkäse 1;6;7;C;G;M;K;T\\n \\n\\n\\n 4.49 €\",\n        \"Freitag\": \"Wrap mit Spicy Mayo, Roter Bete, geräucherter Putenbrust, frischem Blattsalat, Gurke und Hirtenkäse 1;6;7;C;G;M;K;T\\n \\n\\n\\n 4.49 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"\",\n        \"Montag\": \"Pulled Pork Wrap - Pulled Pork, BBQ- Dip, Eisbergsalat, American Coleslaw, Tomaten und Gurken 6;A1;F;I;K;S\",\n        \"Dienstag\": \"Pulled Pork Wrap - Pulled Pork, BBQ- Dip, Eisbergsalat, American Coleslaw, Tomaten und Gurken 6;A1;F;I;K;S\",\n        \"Mittwoch\": \"Pulled Pork Wrap - Pulled Pork, BBQ- Dip, Eisbergsalat, American Coleslaw, Tomaten und Gurken 6;A1;F;I;K;S\",\n        \"Donnerstag\": \"Pulled Pork Wrap - Pulled Pork, BBQ- Dip, Eisbergsalat, American Coleslaw, Tomaten und Gurken 6;A1;F;I;K;S\\n \\n\\n\\n 4.49 €\",\n        \"Freitag\": \"Pulled Pork Wrap - Pulled Pork, BBQ- Dip, Eisbergsalat, American Coleslaw, Tomaten und Gurken 6;A1;F;I;K;S\\n \\n\\n\\n 4.49 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      },\n      {\n        \"0\": \"S\\np\\na\\nr\\nm\\ne\\nn\\nü\",\n        \"Montag\": \"Sparmenü(nicht online bestellbar)\",\n        \"Dienstag\": \"Sparmenü(nicht online bestellbar)\",\n        \"Mittwoch\": \"Sparmenü(nicht online bestellbar)\",\n        \"Donnerstag\": \"Sparmenü(nicht online bestellbar)\\n \\n\\n\\n 2.66 €\",\n        \"Freitag\": \"Sparmenü(nicht online bestellbar)\\n \\n\\n\\n 2.66 €\",\n        \"Samstag\": \"\",\n        \"Sonntag\": \"\"\n      }\n    ]\n  ]\n]\nreturn items;"
      },
      "name": "Function",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        440,
        300
      ]
    },
    {
      "parameters": {
        "functionCode": "const result = []\nfor (item of items) {\n  for (json of item.json) {\n     result.push({\n        json: {...json }\n     })\n  }\n}\n\nreturn result"
      },
      "name": "Function1",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        1230,
        300
      ]
    },
    {
      "parameters": {
        "table": "menus",
        "columns": "menu,dayname,daydate,gericht,preis"
      },
      "name": "MySQL",
      "type": "n8n-nodes-base.mySql",
      "typeVersion": 1,
      "position": [
        1430,
        300
      ]
    }
  ],
  "connections": {
    "Start": {
      "main": [
        [
          {
            "node": "Function",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split": {
      "main": [
        [
          {
            "node": "Function1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "prepare Data": {
      "main": [
        [
          {
            "node": "Split",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split & Manage Menus": {
      "main": [
        [
          {
            "node": "prepare Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Function": {
      "main": [
        [
          {
            "node": "Split & Manage Menus",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Function1": {
      "main": [
        [
          {
            "node": "MySQL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
2 Likes