Search code examples
azureazure-logic-appssecuritycenter

Replace new line in string


I have a Logic App that is being triggered when there is a Security Alert in Security Center.

I have a step where I map a subset of the inputs into a JSON document and use that to create a file.

I need the JSON document that I'm creating to all be in one line, so I need to make sure I replace any control line feeds in the inputs.

Example input:

{
    "headers": {
        "Content-Type": "application/json"
    },
    "body": {
        "RemediationSteps": "[\r\n  \"1. Enforce the use of strong passwords\",\r\n  \"2. Add the source IP to NSG block list for 24 hours\",\r\n  \"3. Create an allow list for RDP access in NSG\"\r\n]"
    }
}

My mapping (in the Designer):

replace(triggerBody()?['RemediationSteps'], '\r\n', ' ')

However, I'm still getting new lines in my JSON document.


Solution

  • I had a similar problem. You have to literally use an "enter". This is what it looks like:

    json(concat('{"items":',string(split(outputs('GetAttachmentContent'),'')),'}'))
    

    Hope it helps.