从 mule 4 的数组中删除所有多余的行
remove all the extra lines from the array in mule 4
我想从数组中删除多余的行或“\n\r”和“\n”,但我的解决方案不起作用。请为此提供正确的函数或数据编织。
输入(json数组格式):
[{"m":"a\n\r",
"a":"b\n"},
{"m":"a\r\n",
"a":"b\n"}]
预期输出(json 数组格式):
[{"m":"a",
"a":"b"},
{"m":"a",
"a":"b"}]
代码:
%dw 2.0
var someSpaceJson = write(payload, "application/json", {"indent":false})
output application/json
---
someSpaceJson replace "\n\r" with ""
您需要指定 \
而不是 \
来表示转义字符。
%dw 2.0
var someSpaceJson = write(payload, "application/json", {"indent":false})
output application/json
---
read((someSpaceJson replace "\r" with "" replace "\n" with ""),"application/json")
这应该会为您提供所需的输出。
如果您想保留值之间的新行并且只想删除尾随的 \r
和 \n
,您可以使用以下内容。这也将避免将 JSON 转换为字符串并返回,这通常应该避免。
%dw 2.0
output application/json
---
payload map ($ mapObject ($$): trim($))
但是,您需要确保所有值都是 string
或 null
。如果不是这种情况,您可以在 mapObject 函数本身中添加这些条件。
我想从数组中删除多余的行或“\n\r”和“\n”,但我的解决方案不起作用。请为此提供正确的函数或数据编织。
输入(json数组格式):
[{"m":"a\n\r",
"a":"b\n"},
{"m":"a\r\n",
"a":"b\n"}]
预期输出(json 数组格式):
[{"m":"a",
"a":"b"},
{"m":"a",
"a":"b"}]
代码:
%dw 2.0
var someSpaceJson = write(payload, "application/json", {"indent":false})
output application/json
---
someSpaceJson replace "\n\r" with ""
您需要指定 \
而不是 \
来表示转义字符。
%dw 2.0
var someSpaceJson = write(payload, "application/json", {"indent":false})
output application/json
---
read((someSpaceJson replace "\r" with "" replace "\n" with ""),"application/json")
这应该会为您提供所需的输出。
如果您想保留值之间的新行并且只想删除尾随的 \r
和 \n
,您可以使用以下内容。这也将避免将 JSON 转换为字符串并返回,这通常应该避免。
%dw 2.0
output application/json
---
payload map ($ mapObject ($$): trim($))
但是,您需要确保所有值都是 string
或 null
。如果不是这种情况,您可以在 mapObject 函数本身中添加这些条件。