- 2 minutes to read

Base64Decode XML from JSON

On this page, you will learn how to use a Liquid-based Stylesheet. The example displays a base64-encoded XML string embedded in a JSON message. The output is XML.

graph LR Json[JSON Message with base64encoded XML content] stylesheet(Liquid Stylesheet)--> |Transform| xml["XML"] Json --> stylesheet

With Nodinite, you can allow end-users to view message payload in other formats using one or more Stylesheets.

You can use this example to style a JSON-based message into another XML message. This can be a useful feature to help you remove sensitive information from end-users.

1. Input JSON

The following data is an example of a JSON message with a base64 encoded content:

	"method": "post",
	"queries": {
		"systemProperties": "Run Details"
	"path": "/orders/messages",
	"host": {
		"connection": {
			"name": "/subscriptions/ae3da538-3e2b-4490-9feb-7dfe30a6683c/resourceGroups/Default-Storage-NorthEurope/providers/Microsoft.Web/connections/servicebus"
	"body": {
		"ContentData": "PG5zMDpPcmRlcnMgeG1sbnM6bnMwPSJTdXBwbHlDaGFpbi5TY2hlbWFzLzEuMCI+CiAgPE9yZGVyPgogICAgPElkPjEzMzc8L0lkPgogICAgPEFtb3VudD4xMzM3PC9BbW91bnQ+CiAgICA8Q2l0eT5Ta2VsbGVmdGXDpTwvQ2l0eT4KICA8L09yZGVyPgo8L25zMDpPcmRlcnM+",
		"CorrelationId": "BOWC123",
		"Properties": {
			"ExtendedProperties/1.0#SystemInterchangeId": "BOWC123"

2. Liquid Stylesheet

Use a Liquid Stylesheet.

	<textarea rows="50" cols="50" style="border: none;outline: none;" id="demo"> </textarea>
		function codemirroreditor(elem) {
			var mime = 'application/xml';
			var editor = CodeMirror.fromTextArea(elem, {
				lineNumbers: true,
				mode: mime,
				indentWithTabs: true,
				smartIndent: true,
				lineNumbers: true,
				matchBrackets: true,
				lineWrapping: true,
				autofocus: true,
				autoRefresh: true,
				extraKeys: { "Ctrl-Space": "autocomplete" }

		function b64DecodeUnicode(str) {
			return decodeURIComponent(
					.map(function(c) {
							return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);

		function displayXml() {
			var elem = document.getElementById('demo');
			elem.value = b64DecodeUnicode("{{body['ContentData']}}");


3. XML Output

If you apply the liquid example on the Input JSON, the following XML output is the result:

<ns0:Orders xmlns:ns0="SupplyChain.Schemas/1.0">

NOTE: The example performs a Unicode translation.

Next Step