XML ⇄ JSON
Overview
XML ⇄ JSON allows transforming json to xml and vica versa. This is useful when making xml requests that expect the request body to contain XML (and to transform the received input to json).
Configuration
Mode
- select the required mode of operation (JSON to XML
orXML to JSON
)Target path
-doc
context node on which to place the created xml / json
JSON to XML
Attribute key
- which key in object should be converted to xml attributes instead of creating as a nodeHeadless xml
- if true the xml generated is headless. The default value is true.JSON path
- inJSON to XML mode
- setsdoc
node from which to take json to be converted to xml
XML to JSON
Attribute key
- set the JSON object key onto which to bind XML attributes if those are found on an XML nodeXML path
- sets thedoc
node from which to take xml to be converted to json should be provided as{{docNode}}
Put child nodes in an array
- if selected this will convert subnodes of the xml into array items
Examples
Convert JSON to XML
In example below $
value is converted to attributes. Used attribute key can be modified via property Attribute key
Sample flow
{
"steps": [
{
"stepType": "xml",
"color": "rgb(204,229,255)",
"displayName": "XML ⇄ JSON",
"isSelected": true,
"config": {
"mode": "JSON to XML",
"attrKey": "$",
"headlessXml": true,
"json": {
"element": {
"$": {
"attribute_name": "attribute value"
},
"child1": {
"prop": "{{doc_property}}"
},
"child2": {
"object": "{{doc_object}}"
},
"child3": "string value"
}
},
"targetPath": "result"
},
"textColor": "red"
}
],
"name": "jsonToXml"
}
Input document
{
"doc_property": "value from document context",
"doc_object": {
"doc_name": "doc_value"
}
}
Execution result
{
"doc": {
"doc_property": "value from document context",
"doc_object": {
"doc_name": "doc_value"
},
"result": "<element attribute_name=\"attribute value\"><child1><prop>value from document context</prop></child1><child2><object><doc_name>doc_value</doc_name></object></child2><child3>string value</child3></element>"
}
}
Convert XML to JSON
Sample flow
{
"steps": [
{
"stepType": "xml",
"color": "rgb(204,229,255)",
"displayName": "XML ⇄ JSON",
"isSelected": true,
"config": {
"mode": "XML to JSON",
"attrKey": "$",
"explicitArray": true,
"headlessXml": true,
"json": {},
"targetPath": "result",
"xml": "<element attribute=\"attribute value\"><child>value</child></element>"
},
"textColor": "black"
}
],
"name": "jsonToXml"
}
Execution result
{
"doc": {
"result": {
"element": {
"$": {
"attribute": "attribute value"
},
"child": [
"value"
]
}
}
}
}