The Utilities module is a JavaScript utility that allows you to escape XML so that Moogsoft Enterprise correctly interprets control characters as data, not markup.
You can also use the module to convert an XML string to a JSON object, which is easier to manipulate in JavaScript. You can convert a JSON object to XML for external communication that requires XML input.
The Utilities module is available to load into any standard Moobot or LAMbot. To load it, define a new global variable at the top of the Moobot or LAMbot Javascript file. For example:
var utilities = MooBot.loadModule('Utilities');
var utilities = LamBot.loadModule('Utilities');
The Utilities module uses the following methods.
Escapes an XML string. Certain characters will not parse correctly if they are not escaped:
Unescaped character | Escaped string |
---|---|
|
|
|
|
|
|
|
|
|
|
The method takes the following arguments:
Name | Type | Required | Description |
---|---|---|---|
| String | Yes | The string to escape. |
Example use of the escapeXML
method:
var unescapedXML = 'my content requires "< and > "';
var escapedXML = '<tag>' + utilities.escapeXML(unescapedXML) + '</tag>';
The variable escapedXML
now contains:
<tag>my content requires "< and > "</tag>
Unescapes an XML string.
The method takes the following arguments:
Name | Type | Required | Description |
---|---|---|---|
| String | Yes | The string to unescape. |
Example use of the unescapeXML
method:
var escapedXML = '<tag>my content requires "< and > "</tag>';
var unescapedXML = utilities.unescapeXML(escapedXML);
The variable unescapedXML
now contains:
<tag>my content requires "< and > "</tag>
Converts an XML string to a JSON object.
The method takes the following arguments:
Name | Type | Required | Description |
---|---|---|---|
| XML string | Yes | The XML to convert to JSON. |
Example use of the xmlToJSON
method:
var xmlExample = '<alerts>' +
'<alert enriched="false">' +
'<id>1</id>' +
'<description>Alert 1</description>' +
'<host>email.moogsoft.com</host>' +
'<severity>5</severity>' +
'</alert>' +
'<alert enriched="true">' +
'<id>2</id>' +
'<description>Alert 2</description>' +
'<host>calendar.moogsoft.com</host>' +
'<severity>2</severity>' +
'</alert>' +
'</alerts>';
var alerts = utilities.xmlToJSON(xmlExample);
The variable alerts
now contains:
{
"alerts":{
"alert":
[
{
"severity":5,
"host":"email.moogsoft.com",
"description":"Alert 1",
"id":1,
"enriched":false
},
{
"severity":2,
"host":"calendar.moogsoft.com",
"description":"Alert 2",
"id":2,
"enriched":true
}
]
}
}
Converts a JSON object to an XML string. You can only use the utility to convert JSON objects, not arrays.
The method takes the following arguments:
Name | Type | Required | Description |
---|---|---|---|
| JSON object | Yes | The JSON object to convert to XML. |
Example use of the jsonToXML
method:
var jsonObjectExample =
{
"data": {
"alerts":
[
{
"enriched": "false",
"id": "1",
"description": "Alert 1",
"host": "email.moogsoft.com",
"severity": "5"
},
{
"enriched": "true",
"id": "2",
"description": "Alert 2",
"host": "calendar.moogsoft.com",
"severity": "2"
}
]
}
};
var convertedXML = utilities.jsonToXML(jsonObjectExample);
The variable convertedXML
now contains:
<data>
<alerts>
<severity>5</severity>
<enriched>false</enriched>
<host>email.moogsoft.com</host>
<description>Alert 1</description>
<id>1</id>
</alerts>
<alerts>
<severity>2</severity>
<enriched>true</enriched>
<host>calendar.moogsoft.com</host>
<description>Alert 2</description>
<id>2</id>
</alerts>
</data>