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?

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
          }
        ]
      ]
    }
  }
}