Заменить новую строку в строке
У меня есть приложение логики, которое запускается при наличии предупреждения безопасности в Центре безопасности.
У меня есть шаг, где я отображаю подмножество входных данных в документ JSON и использую его для создания файла.
Мне нужен документ JSON, который я создаю, чтобы он был в одной строке, поэтому мне нужно убедиться, что я заменю любые переводы строки управления на входах.
Пример ввода:
{
"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]"
}
}
Мое отображение (в конструкторе):
replace(triggerBody()?['RemediationSteps'], '\r\n', ' ')
Тем не менее, я все еще получаю новые строки в моем документе JSON.
0 ответов
При редактировании в режиме конструктора приложения логики добавляют обратную косую черту к исходной обратной косой черте, чтобы отменить ее. Если вы перейдете в просмотр кода, вы можете удалить его вручную.
От:
"value": "@{replace(items('...')['...'],'\\\r\\\n',' ')}"
Для того, чтобы:
"value": "@{replace(items('...')['...'],'\r\n',' ')}"
Вышеупомянутые решения не работали для меня в Microsoft Flow, поскольку веб-редактор добавляет дополнительные обратные косые черты. Варианта редактора кода нет. Что сработало, так это кодирование строки uri, а затем выполнение замены:
decodeUriComponent(replace(uriComponent(body('bodyitem')?['bodykey']),'%0A','%3Cbr%3E'))
'%0A' is the '\n' uriencoded and '%3Cbr%3E' is '<br>' uriencoded.
Сначала кодируйте, выполняйте замену, затем декодируйте. Надеюсь это поможет!
У меня была похожая проблема. Вы должны буквально использовать "ввод". Вот как это выглядит:
json(concat('{"items":',string(split(outputs('GetAttachmentContent'),'')),'}'))
Надеюсь, поможет.
У меня сработало буквально добавление новой строки в выражение:
replace(triggerBody()?['Body'], '
', '<br/>')