Du klistrar in JSON i ett kalkylark, försöker ”göra det läsbart”, och plötsligt hanterar du trasiga arrayer, saknade fält och märklig formatering som ingen litar på.
Det här är den typ av JSON XML automation som räddar analytiker som lever i Google Sheets, marknadsförare som hämtar data från verktyg och ops-ansvariga som fastnar i att stötta äldre system. Du får felfri XML varje gång, utan att handredigera taggar eller fixa ”nästan rätt” konverteringar.
Nedan ser du workflowet, vad det löser och hur du kan använda det som en återanvändbar konverterare i andra automationer.
Så fungerar automationen
Hela n8n-workflowet, från trigger till slutlig output:
n8n Workflow Template: JSON till XML i Google Sheets, korrekta utdata snabbt
flowchart LR
subgraph sg0["JSON to XML Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Convert JSON to XML"]
n1@{ icon: "mdi:play-circle", form: "rounded", label: "JSON to XML", pos: "b", h: 48 }
n1 --> n0
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n1 trigger
class n0 code
classDef customIcon fill:none,stroke:none
class n0 customIcon
Problemet: JSON blir rörigt så fort du delar det
JSON är grymt för API:er. Det är inte lika bra för människor som ska skumma ett kalkylark, eller för äldre verktyg som förväntar sig en strikt, taggbaserad struktur. Den verkliga smärtan börjar när JSON:et är nästlat, innehåller arrayer av objekt eller blandar valfria fält. Då slutar det ofta med att någon ”städar upp” för hand, vilket ger inkonsekventa outputar, tysta misstag och massor av bortkastad uppmärksamhet. Och när du matar samma data i en LLM-prompt kan rörig formatering ändra svaret du får. Ärligt talat är det den värsta typen av problem, eftersom du inte märker det förrän senare.
Det eskalerar snabbt. Här är var det brukar fallera i verkligt arbete.
- Du tappar tid på att platta ut nästlade fält så att ett ark kan visa dem strukturerat.
- Arrayer blir kaos, så varje export ser lite annorlunda ut än den förra.
- Null-värden och tomma strängar skapar brusiga taggar som blåser upp outputen och förvirrar verktyg längre ned i kedjan.
- Äldre system och SOAP-liknande integrationer avvisar ”nästan XML”, vilket tvingar fram omjobb och pingpong.
Lösningen: en återanvändbar JSON-till-XML-konverterare du kan stoppa in i vilket workflow som helst
Det här n8n-workflowet fungerar som ett verktyg du kan återanvända överallt där du behöver konsekvent XML. Du skickar in ett JSON-objekt, det traverserar rekursivt hela strukturen (inklusive nästlade objekt och arrayer) och producerar en enda felfri XML-sträng i ett xml-outputfält. Det hanterar också de irriterande edge cases som brukar spåra ur konverteringar: arrayer med primitiva värden slås ihop på ett säkert sätt, komplexa arrayer får indexerade taggar och datum upptäcks och formateras till en läsbar tidsstämpel. Resultatet blir tillräckligt strukturerat för äldre system, tillräckligt förutsägbart för mallar och rapportering, och tillräckligt felfritt för att klistra rakt in i Google Sheets utan att lägga eftermiddagen på att ”fixa formatering”.
Workflowet kan triggas manuellt, via webhook eller (vanligast) som ett sub-workflow med Execute Workflow från din huvudsakliga automation. Code-noden gör grovjobbet, och sedan returneras outputen direkt så att nästa steg kan lagra den, mejla den eller skicka den vidare till ett annat API.
Det du får: automation kontra resultat
| Det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du tar emot 20 JSON-payloads per dag från ett API och behöver klistra in en felfri version i Google Sheets för en snabb genomgång. Manuell hantering kan lätt ta cirka 5 minuter per payload för att formatera arrayer, ta bort tomma fält och göra datum läsbara, alltså ungefär 100 minuter per dag. Med det här workflowet triggar du konverteringen (eller kör den automatiskt i ditt huvudflöde), väntar några sekunder på bearbetning och klistrar in eller lagrar den resulterande XML:en. Det är runt 90 minuter tillbaka de flesta dagar, och outputen ser likadan ut varje gång.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att klistra in, lagra eller granska outputen
- HTTP Request för att hämta JSON från en API-endpoint
- Webhook-URL (hämtas från n8n:s Webhook-nod)
Kunskapsnivå: Medel. Du kopplar främst triggers och skickar JSON till sub-workflowet, samt justerar några inställningar i Code-noden om du vill ha egen formatering.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En trigger skickar in JSON. Du kan köra det via Manual Trigger för test, anropa det med en webhook eller (mest användbart) köra det som ett child-workflow från en Execute Workflow-nod i din huvudsakliga automation.
Workflowet förbereder payloaden. Om ditt JSON kommer från ett API hämtar HTTP Request-noden data, och Set/Edit Fields kan forma om den så att konverteraren får exakt det objekt du vill göra om till XML.
Code-noden konverterar JSON till XML. Den tolkar objekt och arrayer rekursivt, hanterar datum och tillämpar städregler som att ta bort null- eller tomma värden så att du slipper brusiga taggar.
Du får ett enda XML-outputfält. Workflowet returnerar XML-strängen (och kan Respond to Webhook om du anropar det externt), vilket gör att nästa steg kan klistra in den i Google Sheets, mejla den eller skicka den till en legacy-endpoint.
Du kan enkelt ändra radbrytningsformatering och regler för tomma värden så att det matchar dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Vanliga fallgropar
- HTTP Request-autentisering kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först nodens Authentication-inställningar och tjänstens API-nyckelpanel.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om noder längre ned misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Cirka 1 minut om n8n redan körs.
Nej. Du kopplar triggen och skickar JSON in i workflowet. Om du vill ha egna regler för XML-formatering kan du ändra några variabler i Code-noden.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna med eventuella API-kostnader om du hämtar JSON via HTTP Request från en betaltjänst.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och kör n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är hela poängen med den här mallen. I Code-nodens konfiguration kan du slå på/av borttagning av tomma värden, justera radbrytningsregler för läsbarhet och styra hur arrayer representeras (ihopsatta strängar för arrayer med primitiva värden, indexerade taggar för objektarrayer). Vanliga justeringar är tajtare formatering för copy-paste in i Google Sheets, mer luft för felsökning och att ändra hur tomma taggar hanteras för strikta XML-konsumenter.
Oftast är det ett auth-problem eller att endpointen blockerar din förfrågan. Kontrollera API-nyckeln eller OAuth-inställningarna i HTTP Request-noden igen och verifiera sedan URL och nödvändiga headers i tjänstens dokumentation. Om det fungerar i Postman men inte i n8n handlar det ofta om en saknad header, fel content type eller ett problem med IP-allowlist.
Många, men det beror på hur du kör n8n och hur stor varje JSON-payload är.
För JSON-till-XML-konvertering är n8n oftast det mer praktiska valet eftersom du kan köra riktig transformationslogik på ett ställe, återanvända det som ett sub-workflow och slippa betala extra för fler-stegs ”formatter”-uppgifter. Zapier och Make kan fungera, men du kan behöva stapla moduler för att hantera rekursion, arrayer och städregler, vilket snabbt blir skört. n8n ger dig också möjligheten att self-hosta med obegränsade körningar, vilket spelar roll om du konverterar payloads hela dagen. Om du bara konverterar en liten payload då och då kan enklare verktyg vara helt okej. Prata med en automationsexpert om du vill ha en snabb rekommendation utifrån din volym och setup.
När detta väl är på plats slutar JSON vara något du ”städar upp” och blir något du kan återanvända pålitligt. Sätt upp det en gång, och gå sedan vidare till arbete som faktiskt kräver din hjärna.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.